Пример #1
0
        public void Divide(ArraySlice <double> a, ArraySlice <double> b)
        {
            if (a.Length != b.Length)
            {
                throw new ArgumentException(Constants.Exceptions.ArrayLengthMustBeEqual);
            }

            VclNativeMethods.vclDivide(a.Length, a.Array, a.Offset, b.Array, b.Offset);
        }
Пример #2
0
        public void Copy(ArraySlice <double> x, ArraySlice <double> y)
        {
            if (x.Length != y.Length)
            {
                throw new ArgumentException(Constants.Exceptions.ArrayLengthMustBeEqual);
            }

            VclNativeMethods.vclCopy(x.Length, x.Array, x.Offset, y.Array, y.Offset);
        }
Пример #3
0
        public void Axpby(double alpha, ArraySlice <double> x, double beta, ArraySlice <double> y)
        {
            if (x.Length != y.Length)
            {
                throw new ArgumentException(Constants.Exceptions.ArrayLengthMustBeEqual);
            }

            VclNativeMethods.vclAxpby(x.Length, alpha, x.Array, x.Offset, beta, y.Array, y.Offset);
        }
Пример #4
0
        public double Dot(ArraySlice <double> x, int incx, ArraySlice <double> y, int incy)
        {
            if (incx <= 0 || incy <= 0)
            {
                throw new ArgumentException(Constants.Exceptions.IncrementsMustBePositive);
            }

            return(VclNativeMethods.vclDotEx(x.Length, x.Array, x.Offset, incx, y.Array, y.Offset, incy));
        }
Пример #5
0
        public double Dot(ArraySlice <double> x, ArraySlice <double> y)
        {
            if (x.Length != y.Length)
            {
                throw new ArgumentException(Constants.Exceptions.ArrayLengthMustBeEqual);
            }

            return(VclNativeMethods.vclDot(x.Length, x.Array, x.Offset, y.Array, y.Offset));
        }
Пример #6
0
 public void Add(double alpha, ArraySlice <double> y)
 {
     VclNativeMethods.vclAddScalar(y.Length, alpha, y.Array, y.Offset);
 }
Пример #7
0
 public void Set(double alpha, ArraySlice <double> y)
 {
     VclNativeMethods.vclSet(y.Length, alpha, y.Array, y.Offset);
 }
Пример #8
0
 public int GetVersion()
 {
     return(VclNativeMethods.vclGetVersion());
 }
Пример #9
0
 public void Scale(double alpha, ArraySlice <double> x)
 {
     VclNativeMethods.vclScaleInline(x.Length, alpha, x.Array, x.Offset);
 }
Пример #10
0
 public double Asum(ArraySlice <double> x)
 {
     return(VclNativeMethods.vclAsum(x.Length, x.Array, x.Offset));
 }
Пример #11
0
 public void Gemv(BlasTranspose transA, int m, int n, double alpha, ArraySlice <double> a, ArraySlice <double> x, double beta, ArraySlice <double> y)
 {
     VclNativeMethods.vclGemv(transA, m, n, alpha, a.Array, a.Offset, a.Length, x.Array, x.Offset, x.Length, beta, y.Array, y.Offset, y.Length);
 }
Пример #12
0
 public void Gemm(BlasTranspose transA, BlasTranspose transB, int m, int n, int k, double alpha, ArraySlice <double> a, ArraySlice <double> b, double beta, ArraySlice <double> c)
 {
     VclNativeMethods.vclGemm(transA, transB, m, n, k, alpha, a.Array, a.Offset, b.Array, b.Offset, beta, c.Array, c.Offset);
 }