| conv.h | | conv.h | |
| | | | |
| skipping to change at line 118 | | skipping to change at line 118 | |
| INPUT PARAMETERS | | INPUT PARAMETERS | |
| S - array[0..M-1] - complex periodic signal | | S - array[0..M-1] - complex periodic signal | |
| M - problem size | | M - problem size | |
| B - array[0..N-1] - complex non-periodic response | | B - array[0..N-1] - complex non-periodic response | |
| N - problem size | | N - problem size | |
| | | | |
| OUTPUT PARAMETERS | | OUTPUT PARAMETERS | |
| R - convolution: A*B. array[0..M-1]. | | R - convolution: A*B. array[0..M-1]. | |
| | | | |
| NOTE: | | NOTE: | |
|
| It is assumed that A is zero at T<0, B is zero too. If one or both | | It is assumed that B is zero at T<0. If it has non-zero values at | |
| functions have non-zero values at negative T's, you can still use this | | negative T's, you can still use this subroutine - just shift its result | |
| subroutine - just shift its result correspondingly. | | correspondingly. | |
| | | | |
| -- ALGLIB -- | | -- ALGLIB -- | |
| Copyright 21.07.2009 by Bochkanov Sergey | | Copyright 21.07.2009 by Bochkanov Sergey | |
| *************************************************************************/ | | *************************************************************************/ | |
| void convc1dcircular(const ap::complex_1d_array& s, | | void convc1dcircular(const ap::complex_1d_array& s, | |
| int m, | | int m, | |
| const ap::complex_1d_array& r, | | const ap::complex_1d_array& r, | |
| int n, | | int n, | |
| ap::complex_1d_array& c); | | ap::complex_1d_array& c); | |
| | | | |
| | | | |
| skipping to change at line 150 | | skipping to change at line 150 | |
| N - response length | | N - response length | |
| | | | |
| OUTPUT PARAMETERS | | OUTPUT PARAMETERS | |
| R - deconvolved signal. array[0..M-1]. | | R - deconvolved signal. array[0..M-1]. | |
| | | | |
| NOTE: | | NOTE: | |
| deconvolution is unstable process and may result in division by zero | | deconvolution is unstable process and may result in division by zero | |
| (if your response function is degenerate, i.e. has zero Fourier coefficient
). | | (if your response function is degenerate, i.e. has zero Fourier coefficient
). | |
| | | | |
| NOTE: | | NOTE: | |
|
| It is assumed that A is zero at T<0, B is zero too. If one or both | | It is assumed that B is zero at T<0. If it has non-zero values at | |
| functions have non-zero values at negative T's, you can still use this | | negative T's, you can still use this subroutine - just shift its result | |
| subroutine - just shift its result correspondingly. | | correspondingly. | |
| | | | |
| -- ALGLIB -- | | -- ALGLIB -- | |
| Copyright 21.07.2009 by Bochkanov Sergey | | Copyright 21.07.2009 by Bochkanov Sergey | |
| *************************************************************************/ | | *************************************************************************/ | |
| void convc1dcircularinv(const ap::complex_1d_array& a, | | void convc1dcircularinv(const ap::complex_1d_array& a, | |
| int m, | | int m, | |
| const ap::complex_1d_array& b, | | const ap::complex_1d_array& b, | |
| int n, | | int n, | |
| ap::complex_1d_array& r); | | ap::complex_1d_array& r); | |
| | | | |
| | | | |
| skipping to change at line 238 | | skipping to change at line 238 | |
| INPUT PARAMETERS | | INPUT PARAMETERS | |
| S - array[0..M-1] - real signal | | S - array[0..M-1] - real signal | |
| M - problem size | | M - problem size | |
| B - array[0..N-1] - real response | | B - array[0..N-1] - real response | |
| N - problem size | | N - problem size | |
| | | | |
| OUTPUT PARAMETERS | | OUTPUT PARAMETERS | |
| R - convolution: A*B. array[0..M-1]. | | R - convolution: A*B. array[0..M-1]. | |
| | | | |
| NOTE: | | NOTE: | |
|
| It is assumed that A is zero at T<0, B is zero too. If one or both | | It is assumed that B is zero at T<0. If it has non-zero values at | |
| functions have non-zero values at negative T's, you can still use this | | negative T's, you can still use this subroutine - just shift its result | |
| subroutine - just shift its result correspondingly. | | correspondingly. | |
| | | | |
| -- ALGLIB -- | | -- ALGLIB -- | |
| Copyright 21.07.2009 by Bochkanov Sergey | | Copyright 21.07.2009 by Bochkanov Sergey | |
| *************************************************************************/ | | *************************************************************************/ | |
| void convr1dcircular(const ap::real_1d_array& s, | | void convr1dcircular(const ap::real_1d_array& s, | |
| int m, | | int m, | |
| const ap::real_1d_array& r, | | const ap::real_1d_array& r, | |
| int n, | | int n, | |
| ap::real_1d_array& c); | | ap::real_1d_array& c); | |
| | | | |
| | | | |
| skipping to change at line 270 | | skipping to change at line 270 | |
| N - response length | | N - response length | |
| | | | |
| OUTPUT PARAMETERS | | OUTPUT PARAMETERS | |
| R - deconvolved signal. array[0..M-N]. | | R - deconvolved signal. array[0..M-N]. | |
| | | | |
| NOTE: | | NOTE: | |
| deconvolution is unstable process and may result in division by zero | | deconvolution is unstable process and may result in division by zero | |
| (if your response function is degenerate, i.e. has zero Fourier coefficient
). | | (if your response function is degenerate, i.e. has zero Fourier coefficient
). | |
| | | | |
| NOTE: | | NOTE: | |
|
| It is assumed that A is zero at T<0, B is zero too. If one or both | | It is assumed that B is zero at T<0. If it has non-zero values at | |
| functions have non-zero values at negative T's, you can still use this | | negative T's, you can still use this subroutine - just shift its result | |
| subroutine - just shift its result correspondingly. | | correspondingly. | |
| | | | |
| -- ALGLIB -- | | -- ALGLIB -- | |
| Copyright 21.07.2009 by Bochkanov Sergey | | Copyright 21.07.2009 by Bochkanov Sergey | |
| *************************************************************************/ | | *************************************************************************/ | |
| void convr1dcircularinv(const ap::real_1d_array& a, | | void convr1dcircularinv(const ap::real_1d_array& a, | |
| int m, | | int m, | |
| const ap::real_1d_array& b, | | const ap::real_1d_array& b, | |
| int n, | | int n, | |
| ap::real_1d_array& r); | | ap::real_1d_array& r); | |
| | | | |
| | | | |
End of changes. 4 change blocks. |
| 12 lines changed or deleted | | 12 lines changed or added | |
|
| spline1d.h | | spline1d.h | |
| | | | |
| skipping to change at line 52 | | skipping to change at line 52 | |
| #include "ortfac.h" | | #include "ortfac.h" | |
| #include "rotations.h" | | #include "rotations.h" | |
| #include "bdsvd.h" | | #include "bdsvd.h" | |
| #include "svd.h" | | #include "svd.h" | |
| #include "xblas.h" | | #include "xblas.h" | |
| #include "densesolver.h" | | #include "densesolver.h" | |
| #include "linmin.h" | | #include "linmin.h" | |
| #include "minlbfgs.h" | | #include "minlbfgs.h" | |
| #include "minlm.h" | | #include "minlm.h" | |
| #include "lsfit.h" | | #include "lsfit.h" | |
|
| | | #include "apserv.h" | |
| | | | |
| /************************************************************************* | | /************************************************************************* | |
| 1-dimensional spline inteprolant | | 1-dimensional spline inteprolant | |
| *************************************************************************/ | | *************************************************************************/ | |
| struct spline1dinterpolant | | struct spline1dinterpolant | |
| { | | { | |
|
| | | bool periodic; | |
| int n; | | int n; | |
| int k; | | int k; | |
| ap::real_1d_array x; | | ap::real_1d_array x; | |
| ap::real_1d_array c; | | ap::real_1d_array c; | |
| }; | | }; | |
| | | | |
| /************************************************************************* | | /************************************************************************* | |
| Spline fitting report: | | Spline fitting report: | |
| TaskRCond reciprocal of task's condition number | | TaskRCond reciprocal of task's condition number | |
| RMSError RMS error | | RMSError RMS error | |
| | | | |
| skipping to change at line 92 | | skipping to change at line 94 | |
| This subroutine builds linear spline interpolant | | This subroutine builds linear spline interpolant | |
| | | | |
| INPUT PARAMETERS: | | INPUT PARAMETERS: | |
| X - spline nodes, array[0..N-1] | | X - spline nodes, array[0..N-1] | |
| Y - function values, array[0..N-1] | | Y - function values, array[0..N-1] | |
| N - points count, N>=2 | | N - points count, N>=2 | |
| | | | |
| OUTPUT PARAMETERS: | | OUTPUT PARAMETERS: | |
| C - spline interpolant | | C - spline interpolant | |
| | | | |
|
| | | ORDER OF POINTS | |
| | | | |
| | | Subroutine automatically sorts points, so caller may pass unsorted array. | |
| | | | |
| -- ALGLIB PROJECT -- | | -- ALGLIB PROJECT -- | |
| Copyright 24.06.2007 by Bochkanov Sergey | | Copyright 24.06.2007 by Bochkanov Sergey | |
| *************************************************************************/ | | *************************************************************************/ | |
| void spline1dbuildlinear(ap::real_1d_array x, | | void spline1dbuildlinear(ap::real_1d_array x, | |
| ap::real_1d_array y, | | ap::real_1d_array y, | |
| int n, | | int n, | |
| spline1dinterpolant& c); | | spline1dinterpolant& c); | |
| | | | |
| /************************************************************************* | | /************************************************************************* | |
| This subroutine builds cubic spline interpolant. | | This subroutine builds cubic spline interpolant. | |
| | | | |
| INPUT PARAMETERS: | | INPUT PARAMETERS: | |
|
| X - spline nodes, array[0..N-1] | | X - spline nodes, array[0..N-1]. | |
| Y - function values, array[0..N-1] | | Y - function values, array[0..N-1]. | |
| N - points count, N>=2 | | N - points count, N>=2 | |
| BoundLType - boundary condition type for the left boundary | | BoundLType - boundary condition type for the left boundary | |
| BoundL - left boundary condition (first or second derivative, | | BoundL - left boundary condition (first or second derivative, | |
| depending on the BoundLType) | | depending on the BoundLType) | |
| BoundRType - boundary condition type for the right boundary | | BoundRType - boundary condition type for the right boundary | |
| BoundR - right boundary condition (first or second derivative, | | BoundR - right boundary condition (first or second derivative, | |
| depending on the BoundRType) | | depending on the BoundRType) | |
| | | | |
| OUTPUT PARAMETERS: | | OUTPUT PARAMETERS: | |
| C - spline interpolant | | C - spline interpolant | |
| | | | |
|
| | | ORDER OF POINTS | |
| | | | |
| | | Subroutine automatically sorts points, so caller may pass unsorted array. | |
| | | | |
| | | SETTING BOUNDARY VALUES: | |
| | | | |
| The BoundLType/BoundRType parameters can have the following values: | | The BoundLType/BoundRType parameters can have the following values: | |
|
| * 0, which corresponds to the parabolically terminated spline | | * -1, which corresonds to the periodic (cyclic) boundary conditions. | |
| (BoundL/BoundR are ignored). | | In this case: | |
| * 1, which corresponds to the first derivative boundary condition | | * both BoundLType and BoundRType must be equal to -1. | |
| * 2, which corresponds to the second derivative boundary condition | | * BoundL/BoundR are ignored | |
| | | * Y[last] is ignored (it is assumed to be equal to Y[first]). | |
| | | * 0, which corresponds to the parabolically terminated spline | |
| | | (BoundL and/or BoundR are ignored). | |
| | | * 1, which corresponds to the first derivative boundary condition | |
| | | * 2, which corresponds to the second derivative boundary condition | |
| | | | |
| | | PROBLEMS WITH PERIODIC BOUNDARY CONDITIONS: | |
| | | | |
| | | Problems with periodic boundary conditions have Y[first_point]=Y[last_point | |
| | | ]. | |
| | | However, this subroutine doesn't require you to specify equal values for | |
| | | the first and last points - it automatically forces them to be equal. | |
| | | | |
| -- ALGLIB PROJECT -- | | -- ALGLIB PROJECT -- | |
| Copyright 23.06.2007 by Bochkanov Sergey | | Copyright 23.06.2007 by Bochkanov Sergey | |
| *************************************************************************/ | | *************************************************************************/ | |
| void spline1dbuildcubic(ap::real_1d_array x, | | void spline1dbuildcubic(ap::real_1d_array x, | |
| ap::real_1d_array y, | | ap::real_1d_array y, | |
| int n, | | int n, | |
| int boundltype, | | int boundltype, | |
| double boundl, | | double boundl, | |
| int boundrtype, | | int boundrtype, | |
| double boundr, | | double boundr, | |
| spline1dinterpolant& c); | | spline1dinterpolant& c); | |
| | | | |
| /************************************************************************* | | /************************************************************************* | |
|
| | | This subroutine builds Catmull-Rom spline interpolant. | |
| | | | |
| | | INPUT PARAMETERS: | |
| | | X - spline nodes, array[0..N-1]. | |
| | | Y - function values, array[0..N-1]. | |
| | | N - points count, N>=2 | |
| | | BoundType - boundary condition type: | |
| | | * -1 for periodic boundary condition | |
| | | * 0 for parabolically terminated spline | |
| | | Tension - tension parameter: | |
| | | * tension=0 corresponds to classic Catmull-Rom spline | |
| | | * 0<tension<1 corresponds to more general form - cardin | |
| | | al spline | |
| | | | |
| | | OUTPUT PARAMETERS: | |
| | | C - spline interpolant | |
| | | | |
| | | ORDER OF POINTS | |
| | | | |
| | | Subroutine automatically sorts points, so caller may pass unsorted array. | |
| | | | |
| | | PROBLEMS WITH PERIODIC BOUNDARY CONDITIONS: | |
| | | | |
| | | Problems with periodic boundary conditions have Y[first_point]=Y[last_point | |
| | | ]. | |
| | | However, this subroutine doesn't require you to specify equal values for | |
| | | the first and last points - it automatically forces them to be equal. | |
| | | | |
| | | -- ALGLIB PROJECT -- | |
| | | Copyright 23.06.2007 by Bochkanov Sergey | |
| | | *************************************************************************/ | |
| | | void spline1dbuildcatmullrom(ap::real_1d_array x, | |
| | | ap::real_1d_array y, | |
| | | int n, | |
| | | int boundtype, | |
| | | double tension, | |
| | | spline1dinterpolant& c); | |
| | | | |
| | | /************************************************************************* | |
| This subroutine builds Hermite spline interpolant. | | This subroutine builds Hermite spline interpolant. | |
| | | | |
| INPUT PARAMETERS: | | INPUT PARAMETERS: | |
| X - spline nodes, array[0..N-1] | | X - spline nodes, array[0..N-1] | |
| Y - function values, array[0..N-1] | | Y - function values, array[0..N-1] | |
| D - derivatives, array[0..N-1] | | D - derivatives, array[0..N-1] | |
| N - points count, N>=2 | | N - points count, N>=2 | |
| | | | |
| OUTPUT PARAMETERS: | | OUTPUT PARAMETERS: | |
| C - spline interpolant. | | C - spline interpolant. | |
| | | | |
|
| | | ORDER OF POINTS | |
| | | | |
| | | Subroutine automatically sorts points, so caller may pass unsorted array. | |
| | | | |
| -- ALGLIB PROJECT -- | | -- ALGLIB PROJECT -- | |
| Copyright 23.06.2007 by Bochkanov Sergey | | Copyright 23.06.2007 by Bochkanov Sergey | |
| *************************************************************************/ | | *************************************************************************/ | |
| void spline1dbuildhermite(ap::real_1d_array x, | | void spline1dbuildhermite(ap::real_1d_array x, | |
| ap::real_1d_array y, | | ap::real_1d_array y, | |
| ap::real_1d_array d, | | ap::real_1d_array d, | |
| int n, | | int n, | |
| spline1dinterpolant& c); | | spline1dinterpolant& c); | |
| | | | |
| /************************************************************************* | | /************************************************************************* | |
| This subroutine builds Akima spline interpolant | | This subroutine builds Akima spline interpolant | |
| | | | |
| INPUT PARAMETERS: | | INPUT PARAMETERS: | |
| X - spline nodes, array[0..N-1] | | X - spline nodes, array[0..N-1] | |
| Y - function values, array[0..N-1] | | Y - function values, array[0..N-1] | |
| N - points count, N>=5 | | N - points count, N>=5 | |
| | | | |
| OUTPUT PARAMETERS: | | OUTPUT PARAMETERS: | |
| C - spline interpolant | | C - spline interpolant | |
| | | | |
|
| | | ORDER OF POINTS | |
| | | | |
| | | Subroutine automatically sorts points, so caller may pass unsorted array. | |
| | | | |
| -- ALGLIB PROJECT -- | | -- ALGLIB PROJECT -- | |
| Copyright 24.06.2007 by Bochkanov Sergey | | Copyright 24.06.2007 by Bochkanov Sergey | |
| *************************************************************************/ | | *************************************************************************/ | |
| void spline1dbuildakima(ap::real_1d_array x, | | void spline1dbuildakima(ap::real_1d_array x, | |
| ap::real_1d_array y, | | ap::real_1d_array y, | |
| int n, | | int n, | |
| spline1dinterpolant& c); | | spline1dinterpolant& c); | |
| | | | |
| /************************************************************************* | | /************************************************************************* | |
| Weighted fitting by cubic spline, with constraints on function values or | | Weighted fitting by cubic spline, with constraints on function values or | |
| | | | |
| skipping to change at line 234 | | skipping to change at line 302 | |
| Following fields are set: | | Following fields are set: | |
| * RMSError rms error on the (X,Y). | | * RMSError rms error on the (X,Y). | |
| * AvgError average error on the (X,Y). | | * AvgError average error on the (X,Y). | |
| * AvgRelError average relative error on the non-zero Y | | * AvgRelError average relative error on the non-zero Y | |
| * MaxError maximum error | | * MaxError maximum error | |
| NON-WEIGHTED ERRORS ARE CALCULATED | | NON-WEIGHTED ERRORS ARE CALCULATED | |
| | | | |
| IMPORTANT: | | IMPORTANT: | |
| this subroitine doesn't calculate task's condition number for K<>0. | | this subroitine doesn't calculate task's condition number for K<>0. | |
| | | | |
|
| | | ORDER OF POINTS | |
| | | | |
| | | Subroutine automatically sorts points, so caller may pass unsorted array. | |
| | | | |
| SETTING CONSTRAINTS - DANGERS AND OPPORTUNITIES: | | SETTING CONSTRAINTS - DANGERS AND OPPORTUNITIES: | |
| | | | |
| Setting constraints can lead to undesired results, like ill-conditioned | | Setting constraints can lead to undesired results, like ill-conditioned | |
| behavior, or inconsistency being detected. From the other side, it allows | | behavior, or inconsistency being detected. From the other side, it allows | |
| us to improve quality of the fit. Here we summarize our experience with | | us to improve quality of the fit. Here we summarize our experience with | |
| constrained regression splines: | | constrained regression splines: | |
| * excessive constraints can be inconsistent. Splines are piecewise cubic | | * excessive constraints can be inconsistent. Splines are piecewise cubic | |
| functions, and it is easy to create an example, where large number of | | functions, and it is easy to create an example, where large number of | |
| constraints concentrated in small area will result in inconsistency. | | constraints concentrated in small area will result in inconsistency. | |
| Just because spline is not flexible enough to satisfy all of them. And | | Just because spline is not flexible enough to satisfy all of them. And | |
| | | | |
| skipping to change at line 340 | | skipping to change at line 412 | |
| * AvgRelError average relative error on the non-zero Y | | * AvgRelError average relative error on the non-zero Y | |
| * MaxError maximum error | | * MaxError maximum error | |
| NON-WEIGHTED ERRORS ARE CALCULATED | | NON-WEIGHTED ERRORS ARE CALCULATED | |
| | | | |
| IMPORTANT: | | IMPORTANT: | |
| this subroitine doesn't calculate task's condition number for K<>0. | | this subroitine doesn't calculate task's condition number for K<>0. | |
| | | | |
| IMPORTANT: | | IMPORTANT: | |
| this subroitine supports only even M's | | this subroitine supports only even M's | |
| | | | |
|
| | | ORDER OF POINTS | |
| | | | |
| | | Subroutine automatically sorts points, so caller may pass unsorted array. | |
| | | | |
| SETTING CONSTRAINTS - DANGERS AND OPPORTUNITIES: | | SETTING CONSTRAINTS - DANGERS AND OPPORTUNITIES: | |
| | | | |
| Setting constraints can lead to undesired results, like ill-conditioned | | Setting constraints can lead to undesired results, like ill-conditioned | |
| behavior, or inconsistency being detected. From the other side, it allows | | behavior, or inconsistency being detected. From the other side, it allows | |
| us to improve quality of the fit. Here we summarize our experience with | | us to improve quality of the fit. Here we summarize our experience with | |
| constrained regression splines: | | constrained regression splines: | |
| * excessive constraints can be inconsistent. Splines are piecewise cubic | | * excessive constraints can be inconsistent. Splines are piecewise cubic | |
| functions, and it is easy to create an example, where large number of | | functions, and it is easy to create an example, where large number of | |
| constraints concentrated in small area will result in inconsistency. | | constraints concentrated in small area will result in inconsistency. | |
| Just because spline is not flexible enough to satisfy all of them. And | | Just because spline is not flexible enough to satisfy all of them. And | |
| | | | |
| skipping to change at line 471 | | skipping to change at line 547 | |
| | | | |
| Result: | | Result: | |
| CC - spline copy | | CC - spline copy | |
| | | | |
| -- ALGLIB PROJECT -- | | -- ALGLIB PROJECT -- | |
| Copyright 29.06.2007 by Bochkanov Sergey | | Copyright 29.06.2007 by Bochkanov Sergey | |
| *************************************************************************/ | | *************************************************************************/ | |
| void spline1dcopy(const spline1dinterpolant& c, spline1dinterpolant& cc); | | void spline1dcopy(const spline1dinterpolant& c, spline1dinterpolant& cc); | |
| | | | |
| /************************************************************************* | | /************************************************************************* | |
|
| Serialization of the spline interpolant | | | |
| | | | |
| INPUT PARAMETERS: | | | |
| B - spline interpolant | | | |
| | | | |
| OUTPUT PARAMETERS: | | | |
| RA - array of real numbers which contains interpolant, | | | |
| array[0..RLen-1] | | | |
| RLen - RA lenght | | | |
| | | | |
| -- ALGLIB -- | | | |
| Copyright 17.08.2009 by Bochkanov Sergey | | | |
| *************************************************************************/ | | | |
| void spline1dserialize(const spline1dinterpolant& c, | | | |
| ap::real_1d_array& ra, | | | |
| int& ralen); | | | |
| | | | |
| /************************************************************************* | | | |
| Unserialization of the spline interpolant | | | |
| | | | |
| INPUT PARAMETERS: | | | |
| RA - array of real numbers which contains interpolant, | | | |
| | | | |
| OUTPUT PARAMETERS: | | | |
| B - spline interpolant | | | |
| | | | |
| -- ALGLIB -- | | | |
| Copyright 17.08.2009 by Bochkanov Sergey | | | |
| *************************************************************************/ | | | |
| void spline1dunserialize(const ap::real_1d_array& ra, spline1dinterpolant& | | | |
| c); | | | |
| | | | |
| /************************************************************************* | | | |
| This subroutine unpacks the spline into the coefficients table. | | This subroutine unpacks the spline into the coefficients table. | |
| | | | |
| INPUT PARAMETERS: | | INPUT PARAMETERS: | |
| C - spline interpolant. | | C - spline interpolant. | |
| X - point | | X - point | |
| | | | |
| Result: | | Result: | |
| Tbl - coefficients table, unpacked format, array[0..N-2, 0..5]. | | Tbl - coefficients table, unpacked format, array[0..N-2, 0..5]. | |
| For I = 0...N-2: | | For I = 0...N-2: | |
| Tbl[I,0] = X[i] | | Tbl[I,0] = X[i] | |
| | | | |
| skipping to change at line 562 | | skipping to change at line 606 | |
| -- ALGLIB PROJECT -- | | -- ALGLIB PROJECT -- | |
| Copyright 30.06.2007 by Bochkanov Sergey | | Copyright 30.06.2007 by Bochkanov Sergey | |
| *************************************************************************/ | | *************************************************************************/ | |
| void spline1dlintransy(spline1dinterpolant& c, double a, double b); | | void spline1dlintransy(spline1dinterpolant& c, double a, double b); | |
| | | | |
| /************************************************************************* | | /************************************************************************* | |
| This subroutine integrates the spline. | | This subroutine integrates the spline. | |
| | | | |
| INPUT PARAMETERS: | | INPUT PARAMETERS: | |
| C - spline interpolant. | | C - spline interpolant. | |
|
| X - right bound of the integration interval [a, x] | | X - right bound of the integration interval [a, x], | |
| | | here 'a' denotes min(x[]) | |
| Result: | | Result: | |
| integral(S(t)dt,a,x) | | integral(S(t)dt,a,x) | |
| | | | |
| -- ALGLIB PROJECT -- | | -- ALGLIB PROJECT -- | |
| Copyright 23.06.2007 by Bochkanov Sergey | | Copyright 23.06.2007 by Bochkanov Sergey | |
| *************************************************************************/ | | *************************************************************************/ | |
| double spline1dintegrate(const spline1dinterpolant& c, double x); | | double spline1dintegrate(const spline1dinterpolant& c, double x); | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 13 change blocks. |
| 40 lines changed or deleted | | 87 lines changed or added | |
|