Esempio n. 1
0
        /// <summary>
        /// Old interface to the akima spline. Since all arrays are converted to IVector or IMatrix, avoid this interface if possible.
        /// </summary>
        /// <param name="x">ARRAY OF DIMENSION LX STORING THE X COORDINATES OF INPUT GRID POINTS (IN ASCENDING ORDER)</param>
        /// <param name="y">ARRAY OF DIMENSION LY STORING THE Y COORDINATES OF INPUT GRID POINTS (IN ASCENDING ORDER)</param>
        /// <param name="z">DOUBLY-DIMENSIONED ARRAY OF DIMENSION (LX,LY) STORING THE VALUES OF THE FUNCTION (Z VALUES) AT INPUT GRID POINTS</param>
        /// <param name="u">ARRAY OF DIMENSION N STORING THE X COORDINATES OF DESIRED POINTS</param>
        /// <param name="v">ARRAY OF DIMENSION N STORING THE Y COORDINATES OF DESIRED POINTS</param>
        /// <param name="w">ARRAY OF DIMENSION N WHERE THE INTERPOLATED Z VALUES AT DESIRED POINTS ARE TO BE DISPLAYED</param>
        public static void Interpolate(double[] x, double[] y, double[] z, double[] u, double[] v, double[] w)
        {
            var spline = new BivariateAkimaSpline();

            spline.itplbv_(x.Length, y.Length, VectorMath.ToROVector(x), VectorMath.ToROVector(y), MatrixMath.ToROMatrixFromColumnMajorLinearArray(z, x.Length),
                           w.Length, VectorMath.ToROVector(u), VectorMath.ToROVector(v), VectorMath.ToVector(w));
        }
Esempio n. 2
0
 static void CreateRealPartSpline()
 {
   IROVector x = VectorMath.CreateEquidistantSequence(0, 1.0 / 32, 34); // beta ranging from 0 to 1+1/32
   IROVector y = VectorMath.CreateEquidistantSequence(-5, 1.0 / 64, 353); // y ranging from -5 to 0.5
   IROMatrix z = MatrixMath.ToROMatrix(_redata);
   _respline = new Interpolation.BivariateAkimaSpline(x, y, z, false);
 }
Esempio n. 3
0
        /// <summary>
        /// THIS SUBROUTINE INTERPOLATES, FROM VALUES OF THE FUNCTION
        /// GIVEN AT INPUT GRID POINTS IN AN X-Y PLANE AND FOR A GIVEN
        /// SET OF POINTS IN THE PLANE, THE VALUES OF A SINGLE-VALUED
        /// BIVARIATE FUNCTION Z = Z(X,Y).
        /// THE METHOD IS BASED ON A PIECE-WISE FUNCTION COMPOSED OF
        /// A SET OF BICUBIC POLYNOMIALS IN X AND Y.  EACH POLYNOMIAL
        /// IS APPLICABLE TO A RECTANGLE OF THE INPUT GRID IN THE X-Y
        /// PLANE.  EACH POLYNOMIAL IS DETERMINED LOCALLY.
        /// </summary>
        /// <param name="x">VECTOR OF DIMENSION LX STORING THE X COORDINATES OF INPUT GRID POINTS (IN ASCENDING ORDER)</param>
        /// <param name="y">VECTOR OF DIMENSION LY STORING THE Y COORDINATES OF INPUT GRID POINTS (IN ASCENDING ORDER)</param>
        /// <param name="z">MATRIX OF DIMENSION (LX,LY) STORING THE VALUES OF THE FUNCTION (Z VALUES) AT INPUT GRID POINTS</param>
        /// <param name="u">VECTOR OF DIMENSION N STORING THE X COORDINATES OF DESIRED POINTS</param>
        /// <param name="v">VECTOR OF DIMENSION N STORING THE Y COORDINATES OF DESIRED POINTS</param>
        /// <param name="w">VECTOR OF DIMENSION N WHERE THE INTERPOLATED Z VALUES AT DESIRED POINTS ARE TO BE DISPLAYED</param>
        public static void Interpolate(IReadOnlyList <double> x, IReadOnlyList <double> y, IROMatrix <double> z, IReadOnlyList <double> u, IReadOnlyList <double> v, IVector <double> w)
        {
            var spline = new BivariateAkimaSpline();

            spline.itplbv_(x.Count, y.Count, x, y, z, w.Length, u, v, w);
        }
Esempio n. 4
0
        /// <summary>
        /// THIS SUBROUTINE INTERPOLATES, FROM VALUES OF THE FUNCTION
        /// GIVEN AT INPUT GRID POINTS IN AN X-Y PLANE AND FOR A GIVEN
        /// SET OF POINTS IN THE PLANE, THE VALUES OF A SINGLE-VALUED
        /// BIVARIATE FUNCTION Z = Z(X,Y).
        /// THE METHOD IS BASED ON A PIECE-WISE FUNCTION COMPOSED OF
        /// A SET OF BICUBIC POLYNOMIALS IN X AND Y.  EACH POLYNOMIAL
        /// IS APPLICABLE TO A RECTANGLE OF THE INPUT GRID IN THE X-Y
        /// PLANE.  EACH POLYNOMIAL IS DETERMINED LOCALLY.
        /// </summary>
        /// <param name="x">VECTOR OF DIMENSION LX STORING THE X COORDINATES OF INPUT GRID POINTS (IN ASCENDING ORDER)</param>
        /// <param name="y">VECTOR OF DIMENSION LY STORING THE Y COORDINATES OF INPUT GRID POINTS (IN ASCENDING ORDER)</param>
        /// <param name="z">MATRIX OF DIMENSION (LX,LY) STORING THE VALUES OF THE FUNCTION (Z VALUES) AT INPUT GRID POINTS</param>
        /// <param name="u">VECTOR OF DIMENSION N STORING THE X COORDINATES OF DESIRED POINTS</param>
        /// <param name="v">VECTOR OF DIMENSION N STORING THE Y COORDINATES OF DESIRED POINTS</param>
        /// <param name="w">VECTOR OF DIMENSION N WHERE THE INTERPOLATED Z VALUES AT DESIRED POINTS ARE TO BE DISPLAYED</param>
        public static void Interpolate(IROVector x, IROVector y, IROMatrix z, IROVector u, IROVector v, IVector w)
        {
            BivariateAkimaSpline spline = new BivariateAkimaSpline();

            spline.itplbv_(x.Length, y.Length, x, y, z, w.Length, u, v, w);
        }
 /// <summary>
 /// THIS SUBROUTINE INTERPOLATES, FROM VALUES OF THE FUNCTION 
 /// GIVEN AT INPUT GRID POINTS IN AN X-Y PLANE AND FOR A GIVEN 
 /// SET OF POINTS IN THE PLANE, THE VALUES OF A SINGLE-VALUED 
 /// BIVARIATE FUNCTION Z = Z(X,Y).
 /// THE METHOD IS BASED ON A PIECE-WISE FUNCTION COMPOSED OF
 /// A SET OF BICUBIC POLYNOMIALS IN X AND Y.  EACH POLYNOMIAL 
 /// IS APPLICABLE TO A RECTANGLE OF THE INPUT GRID IN THE X-Y 
 /// PLANE.  EACH POLYNOMIAL IS DETERMINED LOCALLY.
 /// </summary>
 /// <param name="x">ARRAY OF DIMENSION LX STORING THE X COORDINATES OF INPUT GRID POINTS (IN ASCENDING ORDER)</param>
 /// <param name="y">ARRAY OF DIMENSION LY STORING THE Y COORDINATES OF INPUT GRID POINTS (IN ASCENDING ORDER)</param>
 /// <param name="z">DOUBLY-DIMENSIONED ARRAY OF DIMENSION (LX,LY) STORING THE VALUES OF THE FUNCTION (Z VALUES) AT INPUT GRID POINTS</param>
 /// <param name="u">ARRAY OF DIMENSION N STORING THE X COORDINATES OF DESIRED POINTS</param>
 /// <param name="v">ARRAY OF DIMENSION N STORING THE Y COORDINATES OF DESIRED POINTS</param>
 /// <param name="w">ARRAY OF DIMENSION N WHERE THE INTERPOLATED Z VALUES AT DESIRED POINTS ARE TO BE DISPLAYED</param>
 public static void Interpolate(double[] x, double[] y, double[] z, double[] u, double[] v, double[] w)
 {
   BivariateAkimaSpline spline = new BivariateAkimaSpline();
   spline.itplbv_(x.Length,y.Length,x,y,z,w.Length,u,v,w);
 }
Esempio n. 6
0
        /// <summary>
        /// THIS SUBROUTINE INTERPOLATES, FROM VALUES OF THE FUNCTION
        /// GIVEN AT INPUT GRID POINTS IN AN X-Y PLANE AND FOR A GIVEN
        /// SET OF POINTS IN THE PLANE, THE VALUES OF A SINGLE-VALUED
        /// BIVARIATE FUNCTION Z = Z(X,Y).
        /// THE METHOD IS BASED ON A PIECE-WISE FUNCTION COMPOSED OF
        /// A SET OF BICUBIC POLYNOMIALS IN X AND Y.  EACH POLYNOMIAL
        /// IS APPLICABLE TO A RECTANGLE OF THE INPUT GRID IN THE X-Y
        /// PLANE.  EACH POLYNOMIAL IS DETERMINED LOCALLY.
        /// </summary>
        /// <param name="x">ARRAY OF DIMENSION LX STORING THE X COORDINATES OF INPUT GRID POINTS (IN ASCENDING ORDER)</param>
        /// <param name="y">ARRAY OF DIMENSION LY STORING THE Y COORDINATES OF INPUT GRID POINTS (IN ASCENDING ORDER)</param>
        /// <param name="z">DOUBLY-DIMENSIONED ARRAY OF DIMENSION (LX,LY) STORING THE VALUES OF THE FUNCTION (Z VALUES) AT INPUT GRID POINTS</param>
        /// <param name="u">ARRAY OF DIMENSION N STORING THE X COORDINATES OF DESIRED POINTS</param>
        /// <param name="v">ARRAY OF DIMENSION N STORING THE Y COORDINATES OF DESIRED POINTS</param>
        /// <param name="w">ARRAY OF DIMENSION N WHERE THE INTERPOLATED Z VALUES AT DESIRED POINTS ARE TO BE DISPLAYED</param>
        public static void Interpolate(double[] x, double[] y, double[] z, double[] u, double[] v, double[] w)
        {
            BivariateAkimaSpline spline = new BivariateAkimaSpline();

            spline.itplbv_(x.Length, y.Length, x, y, z, w.Length, u, v, w);
        }
Esempio n. 7
0
		/// <summary>
		/// Old interface to the akima spline. Since all arrays are converted to IVector or IMatrix, avoid this interface if possible.
		/// </summary>
		/// <param name="x">ARRAY OF DIMENSION LX STORING THE X COORDINATES OF INPUT GRID POINTS (IN ASCENDING ORDER)</param>
		/// <param name="y">ARRAY OF DIMENSION LY STORING THE Y COORDINATES OF INPUT GRID POINTS (IN ASCENDING ORDER)</param>
		/// <param name="z">DOUBLY-DIMENSIONED ARRAY OF DIMENSION (LX,LY) STORING THE VALUES OF THE FUNCTION (Z VALUES) AT INPUT GRID POINTS</param>
		/// <param name="u">ARRAY OF DIMENSION N STORING THE X COORDINATES OF DESIRED POINTS</param>
		/// <param name="v">ARRAY OF DIMENSION N STORING THE Y COORDINATES OF DESIRED POINTS</param>
		/// <param name="w">ARRAY OF DIMENSION N WHERE THE INTERPOLATED Z VALUES AT DESIRED POINTS ARE TO BE DISPLAYED</param>
		public static void Interpolate(double[] x, double[] y, double[] z, double[] u, double[] v, double[] w)
		{
			BivariateAkimaSpline spline = new BivariateAkimaSpline();
			spline.itplbv_(x.Length, y.Length, VectorMath.ToROVector(x), VectorMath.ToROVector(y), MatrixMath.ToROMatrix(z, x.Length),
				w.Length, VectorMath.ToROVector(u), VectorMath.ToROVector(v), VectorMath.ToVector(w));
		}
Esempio n. 8
0
		/// <summary>
		/// THIS SUBROUTINE INTERPOLATES, FROM VALUES OF THE FUNCTION
		/// GIVEN AT INPUT GRID POINTS IN AN X-Y PLANE AND FOR A GIVEN
		/// SET OF POINTS IN THE PLANE, THE VALUES OF A SINGLE-VALUED
		/// BIVARIATE FUNCTION Z = Z(X,Y).
		/// THE METHOD IS BASED ON A PIECE-WISE FUNCTION COMPOSED OF
		/// A SET OF BICUBIC POLYNOMIALS IN X AND Y.  EACH POLYNOMIAL
		/// IS APPLICABLE TO A RECTANGLE OF THE INPUT GRID IN THE X-Y
		/// PLANE.  EACH POLYNOMIAL IS DETERMINED LOCALLY.
		/// </summary>
		/// <param name="x">VECTOR OF DIMENSION LX STORING THE X COORDINATES OF INPUT GRID POINTS (IN ASCENDING ORDER)</param>
		/// <param name="y">VECTOR OF DIMENSION LY STORING THE Y COORDINATES OF INPUT GRID POINTS (IN ASCENDING ORDER)</param>
		/// <param name="z">MATRIX OF DIMENSION (LX,LY) STORING THE VALUES OF THE FUNCTION (Z VALUES) AT INPUT GRID POINTS</param>
		/// <param name="u">VECTOR OF DIMENSION N STORING THE X COORDINATES OF DESIRED POINTS</param>
		/// <param name="v">VECTOR OF DIMENSION N STORING THE Y COORDINATES OF DESIRED POINTS</param>
		/// <param name="w">VECTOR OF DIMENSION N WHERE THE INTERPOLATED Z VALUES AT DESIRED POINTS ARE TO BE DISPLAYED</param>
		public static void Interpolate(IROVector x, IROVector y, IROMatrix z, IROVector u, IROVector v, IVector w)
		{
			BivariateAkimaSpline spline = new BivariateAkimaSpline();
			spline.itplbv_(x.Length, y.Length, x, y, z, w.Length, u, v, w);
		}