func (c *columnfloat32) LoadUint64(idx uint32) (v uint64, ok bool) {
	if idx < uint32(len(c.data)) && c.fill.Contains(idx) {
		v, ok = uint64(c.data[idx]), true
	}
	return
}
LoadUint64 retrieves an uint64 value at a specified index
package column
import (
	"github.com/kelindar/bitmap"
	"github.com/kelindar/column/commit"
)
type columnfloat32 struct {
	fill bitmap.Bitmap  
	data []float32      
}
func makeFloat32s() Column {
	return &columnfloat32{
		fill: make(bitmap.Bitmap, 0, 4),
		data: make([]float32, 0, 64),
	}
}
func (c *columnfloat32) Grow(idx uint32) {
	if idx < uint32(len(c.data)) {
		return
	}
	if idx < uint32(cap(c.data)) {
		c.fill.Grow(idx)
		c.data = c.data[:idx+1]
		return
	}
	c.fill.Grow(idx)
	clone := make([]float32, idx+1, capacityFor(idx+1))
	copy(clone, c.data)
	c.data = clone
}
func (c *columnfloat32) Apply(r *commit.Reader) {
	for r.Next() {
		switch r.Type {
		case commit.Put:
			c.fill[r.Offset>>6] |= 1 << (r.Offset & 0x3f)
			c.data[r.Offset] = r.Float32()
		case commit.Add:
			c.fill[r.Offset>>6] |= 1 << (r.Offset & 0x3f)
			value := c.data[r.Offset] + r.Float32()
			c.data[r.Offset] = value
			r.SwapFloat32(value)
		case commit.Delete:
			c.fill.Remove(r.Index())
		}
	}
}
func (c *columnfloat32) Contains(idx uint32) bool {
	return c.fill.Contains(idx)
}
func (c *columnfloat32) Index() *bitmap.Bitmap {
	return &c.fill
}
func (c *columnfloat32) Value(idx uint32) (v interface{}, ok bool) {
	v = float32(0)
	if idx < uint32(len(c.data)) && c.fill.Contains(idx) {
		v, ok = c.data[idx], true
	}
	return
}
func (c *columnfloat32) LoadFloat64(idx uint32) (v float64, ok bool) {
	if idx < uint32(len(c.data)) && c.fill.Contains(idx) {
		v, ok = float64(c.data[idx]), true
	}
	return
}
func (c *columnfloat32) LoadInt64(idx uint32) (v int64, ok bool) {
	if idx < uint32(len(c.data)) && c.fill.Contains(idx) {
		v, ok = int64(c.data[idx]), true
	}
	return
}