Ejemplo n.º 1
0
// average in userspace XYZ order
// does not yet take into account volume.
// pass volume parameter, possibly nil?
func average(b *data.Synced) []float64 {
	s := b.Read()
	defer b.ReadDone()
	nComp := s.NComp()
	avg := make([]float64, nComp)
	for i := range avg {
		I := swapIndex(i, nComp)
		avg[i] = float64(cuda.Sum(s.Comp(I))) / float64(s.Mesh().NCell())
	}
	return avg
}