public IFloatData2D VT_mult_V(IFloatData vt, IFloatData v) { var output = new float[v.Length, vt.Length]; Parallel.For(0, v.Length, x => { Parallel.For(0, vt.Length, y => { output[x, y] = vt[y] * v[x]; }); }); return(new CPU_FloatData2D(output)); }
public IFloatData V_div_C(IFloatData cache, IFloatData v, float c) { for (int i = 0; i < cache.Length; i++) { cache[i] = v[i] / c; } return(cache); }
public IFloatData Sqrt(IFloatData cache, IFloatData arr) { for (int i = 0; i < cache.Length; i++) { cache[i] = SafeDouble(Math.Sqrt(arr[i])); } return(cache); }
public IFloatData V_add_V(IFloatData cache, IFloatData v0, IFloatData v1) { for (int i = 0; i < cache.Length; i++) { cache[i] = v0[i] + v1[i]; } return(cache); }
public IFloatData V_sub_C(IFloatData cache, float c, IFloatData v) { for (int i = 0; i < cache.Length; i++) { cache[i] = c - v[i]; } return(cache); }
public IFloatData Pow(IFloatData cache, IFloatData arr, float exp) { for (int i = 0; i < cache.Length; i++) { cache[i] = SafeDouble(Math.Pow(arr[i], exp)); } return(cache); }
public IFloatData ApplyMask(IFloatData arr, IByteData mask) { var output = new float[arr.Length]; for (var x = 0; x < arr.Length; x++) { output[x] = arr[x] * mask[x]; } return(new CPU_FloatData(output)); }
public IFloatData2D M_mult_V(IFloatData2D cache, IFloatData2D m, IFloatData v) { for (int x = 0; x < m.W; x++) { for (int y = 0; y < m.H; y++) { cache[x, y] = m[x, y] * v[x]; } } return(cache); }
public IFloatData2D VT_mult_M(IFloatData2D cache, IFloatData vt, IFloatData2D m) { for (int x = 0; x < m.W; x++) { for (int y = 0; y < m.H; y++) { cache[x, y] = vt[y] * m[x, y]; } } return(cache); }
public IFloatData2D VT_mult_V(IFloatData vt, IFloatData v) { var output = new float[v.Length, vt.Length]; for (int x = 0; x < v.Length; x++) { for (int y = 0; y < vt.Length; y++) { output[x, y] = vt[y] * v[x]; } } return(new CPU_FloatData2D(output)); }
public IFloatData V_div_C(IFloatData cache, float c, IFloatData v) { Parallel.For(0, cache.Length, i => cache[i] = c / v[i]); return(cache); }
public IFloatData V_div_C(IFloatData cache, IFloatData v, float c) { Parallel.For(0, cache.Length, i => cache[i] = v[i] / c); return(cache); }
public FloatArray(float[] data) { _view = ProcessingDevice.FloatData.New(data); cache = ProcessingDevice.FloatData.New(Length); }
public FloatArray(int size) { _view = ProcessingDevice.FloatData.New(size); cache = ProcessingDevice.FloatData.New(size); }
public IFloatData V_mult_V(IFloatData cache, IFloatData v0, IFloatData v1) { Parallel.For(0, cache.Length, i => cache[i] = v0[i] * v1[i]); return(cache); }
public IFloatData Cos(IFloatData cache, IFloatData arr) { Parallel.For(0, cache.Length, i => { cache[i] = SafeDouble(Math.Cos(arr[i])); }); return(cache); }
public IFloatData Pow(IFloatData cache, IFloatData arr, float exp) { Parallel.For(0, cache.Length, i => { cache[i] = SafeDouble(Math.Pow(arr[i], exp)); }); return(cache); }
public FloatArrayT(IFloatData data) { _view = data; }
public IFloatData2D VT_mult_M(IFloatData2D cache, IFloatData vt, IFloatData2D m) { Parallel.For(0, m.W, x => { Parallel.For(0, m.H, y => { cache[x, y] = vt[y] * m[x, y]; }); }); return(cache); }
public FloatArray(IFloatData data) { _view = data; cache = ProcessingDevice.FloatData.New(Length); }
public IFloatData2D M_mult_V(IFloatData2D cache, IFloatData2D m, IFloatData v) { Parallel.For(0, m.W, x => { Parallel.For(0, m.H, y => { cache[x, y] = m[x, y] * v[x]; }); }); return(cache); }