Quantcast
Channel: Intel® Software - Intel® oneAPI Math Kernel Library & Intel® Math Kernel Library
Viewing all 3005 articles
Browse latest View live

pardiso out of memory (-2) in phase 33

$
0
0

Hi,

pardiso stops with error message -2 in phase 33 when increasing the number of rhs from 600 to 700. 600 rhs runs fine with a memory use  of 146.2GB ("RES") reported by "top". The system has 256GB of RAM, so there is still +40% left. What is the issue when increasing #rhs by 100??

Thanks


Issues compiling MATLAB mex with Intel MKL PARDISO

$
0
0

I am quite new to writing mex files, and to the MKL. I need to interface the PARDISO solver with a MATLAB code of mine, for solving of large finite element matrices. When compiling my mex code, I am having some issues. MATLAB gives me the error message:

Error using mex
   Creating library fem_mex_pardiso.lib and object fem_mex_pardiso.exp
fem_mex_pardiso.obj : error LNK2019: unresolved external symbol pardiso referenced in function mexFunction
fem_mex_pardiso.mexw64 : fatal error LNK1120: 1 unresolved externals

This occurs when I submit the command

mex -R2018a fem_mex_pardiso.c -I'C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.2.190\windows\mkl\include\'

I am sure that it is that I am not linking something properly, but I honestly am quite new to interfacing MATLAB with external libraries.

Here is the c - code that gives the errors:

/*==========================================================
 * fem_mex_pardiso.ca
 *==========================================================*/
 
 // Include headers
 #include "mex.h"
 #include "mkl.h"
 #include "mkl_pardiso.h"
 #include "mkl_types.h"

 void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
 {
    // Define variables
    double *a, *rf_glob, *u_qct, ddum;
    int num_rows, i;
    void *pt[64];
    MKL_INT *ia, *ja, n, iparm[64], maxfct, mnum, phase, error, msglvl, mtype, idum;
    
    // Argument checks
    if (nlhs > 1)
    {
        mexErrMsgTxt("Too many outputs!");
    }
    if (nrhs != 4) // Should be 3 matrices for the CSR3 format of k_glob, and one column vector for rf_glob
    {
        mexErrMsgTxt("Need four inputs! (3 vectors for the sparse stiffness matrix, and one for the load vector)");
    }
    
    // Get the sparse matrix inputs
    ia = mxGetInt32s(prhs[0]); // Contains the indices of the first non-zero element in each row of a. Note, the last index of ia is the number of non-zero elements in a, plus one
    ja = mxGetInt32s(prhs[1]); // Contains the global column indices of every element in a
    a = mxGetDoubles(prhs[2]); // Non-zero elements of stiffness matrix
    
    // Number of equations is equal to length of the reaction force vector
    rf_glob = mxGetDoubles(prhs[3]);
    num_rows = mxGetM(prhs[3]);
    n = num_rows;
    
    // Configure out-of-core settings
    //setenv('MKL_PARDISO_OOC_PATH', 'C:\Users\dylan\Documents\School\Masters\01_Main_MSc\02_Codes\13_INTEL_MKL_Matlab\OutOfCore_Memory\ooc_file');
    //setenv('MKL_PARDISO_OOC_MAX_CORE_SIZE', '12288');
    //setenv('MKL_PARDISO_OOC_MAX_SWAP_SIZE', '8192');
    //setenv('MKL_PARDISO_OOC_KEEP_FILE', '0');
    
    // Setup solver
        // Iniitialize values for solver parameters
    maxfct = 1; // Maximal number of factors in memory
    mnum = 1; // Number of matrices to solve
    mtype = -2; // Matrix type (Here, real and symmetric positive indefinite. For real and symmetric positive definite, use 2)
    // Initialize the parameters
    for (i = 0; i < 64; i++)
    {
        iparm[i] = 0;
    }    
    iparm[0] = 1; // Not using default solver parameters
    iparm[1] = 3; // Fill-in reducing ordering from METIS, parallelized with OpenMP
    iparm[3] = 0; // Not using an iterative algorithm
    iparm[4] = 0; // Not using a user-specified fill-in reducing permutation
    iparm[5] = 0; // Write solution into u_qct
    iparm[7] = 2; // Maximum number of iterative refinement steps
    iparm[9] = 13; // Perturb pivot elements by 1E-13 to deal with near-zero or zero pivots
    iparm[10] = 0; // No scaling (because we will be reording to a symmetric matrix)
    iparm[12] = 0; // No symmetric weighted matching
    iparm[13] = 0; // Zero perturbed pivots
    iparm[17] = -1; // Number of non-zeros in the factor LU
    iparm[18] = -1; // Mfloprs for LU factorization
    iparm[19] = 0; // Number of CG iterations
    iparm[34] = 1; // Use C-style indexing for ia and ja arrays
    iparm[60] = 1; // Use out-of-core memory if out of RAM
    msglvl = 0; // Do not print statistical information file
    error = 0; // Initialize error flag
        // Initialize the solver pointer
    for (i = 0; i < 64; i++)
    {
        pt[i] = 0;
    }    
    
    // Begin solving
    
    // Step 1 - Reordering and symbolic factorization
    phase = 11;
    PARDISO (pt, &maxfct, &mnum, &mtype, &phase, &n, a, ia, ja, &idum, &nrhs, iparm, &msglvl, &ddum, &ddum, &error);
    if (error != 0)
    {
        printf("\n ERROR during symbolic factorization: %d", error);
        exit(1);
    }
    printf("\nReordering completed ... ");
    printf("\nNumber of nonzeros in factors = %d", iparm[17]);
    printf("\nNumber of factorization MFLOPS = %d", iparm[18]);
 }

 

Any help is greatly appreciated. Thankyou!

Intel MKL and IPP licensing

$
0
0

Hello.

 

Can you tell me if MKL and IPP (Intel Performance Primitives) are free to use in third-party proprietary programs?

Composer 2019 up2 -- Link error: _powf already defined in mkl_core.lib

$
0
0

Hello,

Since I upgraded Composer from 2018 up3 to 2019 up2 I am getting linker errors such as: libmmd.lib(libmmd.dll) : : error LNK2005: _powf already defined in mkl_core.lib(_avx512_dgetri_small.obj). 

It appears when I am try to compile with ICC in 32bit (/Qm32) and disable optimization (/QOd). It compiles and links well with /Qm32 and optimization options (/O3, or /O2, ...). It also compiles and links fine in 64bit (/Qm64) with or without optimization.

You may reproduce with this simple code:

void AvxCopulaFunction::claytonCopulaIterationF(float* correlatedUniforms,const float* notCorrelatedUniforms,const float coeff1,const int length)
{
  __pragma(ivdep)
  for (int i = 0; i < length; i++)
  {
    correlatedUniforms[i] = pow(1.0f + notCorrelatedUniforms[i], coeff1);
    // double precision version of "pow" works fine !
    //correlatedUniforms[i] = pow(1.0 + (double)notCorrelatedUniforms[i], (double)coeff1);
  }
}

int AvxCopulaFunction::inverseLUFactoredSquareMatrix(double* matrixToOverwrite,int* inputPivotVector,const int matrixRank)
{
  return LAPACKE_dgetri( LAPACK_ROW_MAJOR, matrixRank, matrixToOverwrite, matrixRank, inputPivotVector );
}

Could you please have a look ?

My command lines are in attachment, let me know if you need more information.

I found this topic, it is maybe related: Linker errors with Visual Fortran Compiler 19.0.1.144

My config: Win10 x64, Visual Studio 2013, Composer 2019 up2

Regards,

Guillaume A.

[HPCG] Compilation with GCC//GOMP/OpenMPI - error at run-time

$
0
0

Hello everyone,

 

Brief summary of the issue:

  • GCC version: 7.3.0;
  • An hybrid OpenMP/MPI version of HPCG was compiled from the source code delivered with the Intel MKL;
  • It was linked to OpenMPI-3.0.1, and MKL 2018.3.222;
  • The compilation and the linkage complete without any error nor warnings;
  • At run-time, when executed on a compute node with 2 sockets (E5-2620 v4) - 2 MPI ranks, 8 OpenMP threads per rank - an error raised in src/CheckProblem.cpp of the HPCG source code. The hpcg.dat file being used is the default one (192 192 192).

 

Some more details:

  • The setup file associated with the compilation/linkage of HPCG is attached to this message;
  • In order to run HPCG, I used the following commands:
export OMP_NUM_THREADS=8 ; mpirun -np 2 ./xhpcg_avx2
  • The aforementioned run-time error is the following:
xhpcg_avx2: src/CheckProblem.cpp:123: void CheckProblem(const SparseMatrix&, Vector*, Vector*, Vector*): Assertion `*currentIndexPointerG++ == curcol' failed

 

Please, feel free to ask any piece of information you think might be helpful, I'll do my best to provide it.

 

Thank you in advance for help,

--Mathieu.

AttachmentSize
Downloadtext/plainsetup.txt5.61 KB

Crash in Link MKL DFTI library from VS C++ x64

$
0
0

I would like to use MKL FFT functions in C++ of VS 2013 on Windows x64 system. What I have done are:
1. Run test example C program, MKL FFT functions work OK
2. Run my x64 program without calls to MKL FFT functions, it works also OK
3. Add call to MKL FFT functions in my C++ classes which are built into a dll called Utility, my whole program compiles OK
4. Run my program which links the Utility.dll that calls to MKL FFT functions, it crashed with "System.DllNotFoundExeption"
5. The “DllNotFound” didn’t refer to Utility.dll that calls the MKL FFT functions. It complaints about APICreatedBySWIG.dll not found.
APICreatedBySWIG.dll is a dll generated by the SWIG that converts my selected C++ functions to C# and Python interfaces wrapper.
6. To simplify the case, I exclude, in the SWIG conversions, all of those functions that call MKL FFT. In other words, APICreatedBySWIG.dll doesn’t contain any of those functions that call MKL FFT.
7. Comment out the calls to MKL FFT functions, my program starts working again
8. Replace the calls to MKL FFT functions with MKL Convolve functions in VSL, my program run beautifully without any issue
9. To investigate the dependency of the MKL FFT functions, I have load the the Utility.dll on “Dependency Walker”, which shows some MKL functions in red and an error: At least one module has an unresolved import ...... (please see attachement)

To resolve this issue I need your help urgently. It would be greatly appreciated if you can shed some light on searching the answer for
1. which dll actually missing during run time and which dll the MKL function MKL DftiComputeForward actually depends on?
2. why loading APICreatedBySWIG.dll crashes when is doesn’t contain the function that calls MKL DftiComputeForward in C++ class?
3. are there some special requirements for linking those MKL libraries tjhat are in red on “Dependency Walker”?
4. Is crash due to my x64 system conflicts with some MKL library which are 32bit?

My system:
1. Xeon E5-2650 v3
2. Windows 7 Professional 64-bit
3. Visual Studio 2013
5. VS C++
6. boost_1_68_0
7. SWIG to convert selected C++ functions to C# or Python interface wrappers
8. Intel® Parallel Studio installed (compilers_and_libraries_2019.1.144 & Intel C++ Compiler 19.0)
9. Use Intel MKL = Parallel

Please let me know if any additional information is needed.

How to operate with integral types on MKL

$
0
0

Hi all,

I'm pretty new to the MKL world and I'm starting to practice with the API, but I cant found anything in the documentation about operating with integral types with MKL. For example, I will like to use the 'mkl_?omatcopy' function with a matrix of shorts, but there are only functions for double and float types.

Am i missing something? In case that there's no way to use integral types in MKL, which is the alternative?.

Thanks a lot for the support given,

Greetings.

How to compute1D FFT of 2D array in another dimension without reshaping the array.

$
0
0

I want to compute 1D FFT of a 2D array stored as a 1D array in another dimension. For example the 2D array is stored as:

for(int j=0; j<NJ; j++) //rows
{
    for(int i=0; i<NI; i++) //colums
        {
            Ori_2D_array[i+j*NI]=1.0;
        }
}

Now I want to compute the 1D FFT of the  Ori_2D_array in the row dimension. The only way I can think out is reshaping the Ori_2D_array then doing the fft:

for (int i=0; i<NI; i++)
{
  for (int j=0; j<NJ; j++)
    {
      2D_array[j+i*NJ]=Ori_2D_array[i+j*NI];
    }
}


DFTI_DESCRIPTOR_HANDLE desc_x = 0;
DftiCreateDescriptor(&desc_x, DFTI_PREC, DFTI_COMPLEX, 1, NJ);
DftiSetValue(desc_x, DFTI_NUMBER_OF_TRANSFORMS, NI);
DftiSetValue(desc_x, DFTI_INPUT_DISTANCE,  NJ);
DftiCommitDescriptor(desc_x);
DftiComputeForward(desc_x, 2D_array);

Reshaping Ori_2D_array wasting too much time. Is there anyway to do the FFT without reshaping Ori_2D_arra.

Please advise!


Intel® MKL version 2019 Update 3 is now available

$
0
0

Intel® Math Kernel Library (Intel® MKL) is a highly optimized, extensively threaded, and thread-safe library of mathematical functions for engineering, scientific, and financial applications that require maximum performance.

Intel MKL 2019 Update 3 packages are now ready for download.

Intel MKL is available as part of the Intel® Parallel Studio XE and Intel® System Studio. Please visit the Intel® Math Kernel Library Product Page.

Please see What's new in Intel MKL 2019 and in MKL 2019 Update 3 follow this link - https://software.intel.com/en-us/articles/intel-math-kernel-library-rele...

and here is the link to the MKL 2019 Bug Fix list - https://software.intel.com/en-us/articles/intel-math-kernel-library-2019...

numerical integrator dodesol_mk52lfn and tolerance

$
0
0

I am using dodesol_mk52lfn as a replacement for the Gear numerical integrator in the IMSL.  dodesol_mk52lfn has a tolerance input argument, ep, which I do not understand.  dodesol_mk52lfn output matches IMSL quite well with ep on the order of 0.1 to 1.0, whereas it seems that this argument ought to be on the order of 1e-6.  For instance, the example problem in the documentation uses ep=1e-6 and says this produces accuracy of "about 5%".

ep DOUBLE PRECISION

(input) Relative error tolerance, which must be small enough. The code cannot ensure the requested accuracy for ep<1.d-9. This parameter is used to control the step size.

Thanks,

Brian Murphy

problem with LAPACKE_dstemr

$
0
0

Hello! I am trying to use the function 'LAPACKE_dstemr' with a symmetric tridiagonal matrix 'T' but my code crashes.  The  matrix T (dimxdim) in general has the following form:

        | 1.0        a         0         0         0   |
        | a           b         a         0         0   |
T =   | 0           a         b         a         0   | *tau
        | 0           0         a         b          a  |
        | 0           0         0         a         1.0|

where a = -phi1, b=(1.0 + phi1^2)

Let  for example that coefs=[phi1 tau]=[0.7 1] and  dim=200. I want to compute all the eigenvalues and eigenvectors. I cant find an example with this function, please could you tell me what I am doing wrong. My mex-code is the following. Thank you very much.

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <mkl.h>
#include "mkl_vml.h"
#include "mex.h"
#include "matrix.h"
#include "mkl_vsl.h"
#include <string.h> /* is needed for the function 'strcmp' */

/* Auxiliary routines prototypes */
extern void print_matrix( char* desc, MKL_INT m, MKL_INT n, double* a, MKL_INT lda );
extern double sprod(int dim, double *a);

/* main fucntion */
void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[])
{
    int i,dim,info,n;
    int tryrac = true;
    double *coefs,phi1,tau,phi1square,rw2,*U,*w,*e,*d;
    
    /* make pointers to input data */
    dim = (int)mxGetScalar(prhs[0]);
    coefs = (double*)mxGetPr(prhs[1]);
    rw2 = (double)mxGetScalar(prhs[2]);
    
    /* phi1,tau */
    phi1 = coefs[0];
    phi1square = pow(phi1,2);
    tau = coefs[1];
    
    /* make pointers to output data */
    plhs[0] = mxCreateDoubleMatrix(1,dim,mxREAL);
    w = mxGetPr(plhs[0]);
    
    plhs[1] = mxCreateDoubleMatrix(dim,dim,mxREAL);
    U = mxGetPr(plhs[1]);
    
    /* Memory */
    d = (double*)mxMalloc(dim*sizeof(double));
    e = (double*)mxMalloc(dim*sizeof(double));
    
    /* e, d */
    e[0:dim:1] = -phi1*tau;
    d[0] = tau;
    d[dim-1] = tau;
    d[1:dim-2:1] = (1.0 + phi1square)*tau;
    
    print_matrix( "e", 1, dim, e, 1 );
    print_matrix( "d", 1, dim, d, 1 );
    
    /* Solve eigenproblem */
    n = dim;
    info = LAPACKE_dstemr(LAPACK_COL_MAJOR, 'V', 'A', dim,
            d, e, 0, 0, 0, 0, &n,  w, U, dim, dim, &n, &tryrac );
    
    mexPrintf( "n=%d\t dim=%d\n", n,dim );
    
    /* release memory */
    mxFree(e),mxFree(d);
    return ;
}

/* Auxiliary routine: printing a matrix */
void print_matrix( char* desc, MKL_INT m, MKL_INT n, double* a, MKL_INT lda ) {
    MKL_INT i, j;
    mexPrintf( "\n %s\n", desc );
    for( i = 0; i < m; i++ ) {
        for( j = 0; j < n; j++ ) mexPrintf( " %6.2f", a[i+j*lda] );
        mexPrintf( "\n" );
    }
}

 

Problem with apt repo (Hash Sum mismatch)

$
0
0

Ubuntu 16.04 (containerized env)

cd /tmp && wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
wget https://apt.repos.intel.com/setup/intelproducts.list -O /etc/apt/sources.list.d/intelproducts.list
sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list'
apt-get update && DEBIAN_FRONTEND=noninteractive $APT_INSTALL intel-mkl-64bit-2018.4-057

Unexpected error output:

Hit:8 http://archive.ubuntu.com/ubuntu xenial-updates InRelease
Get:9 https://apt.repos.intel.com/mkl all/main amd64 Packages [83.8 kB]
Err:9 https://apt.repos.intel.com/mkl all/main amd64 Packages
  Hash Sum mismatch
Get:10 https://apt.repos.intel.com/mkl all/main all Packages [23.2 kB]
Err:10 https://apt.repos.intel.com/mkl all/main all Packages

Hit:11 http://archive.ubuntu.com/ubuntu xenial-backports InRelease
Fetched 102 kB in 1s (97.7 kB/s)
Reading package lists...
E: Failed to fetch https://apt.repos.intel.com/mkl/dists/all/main/binary-amd64/Packages.gz  Hash Sum mismatch
E: Failed to fetch https://apt.repos.intel.com/mkl/dists/all/main/binary-all/Packages.gz
E: Some index files failed to download. They have been ignored, or old ones used instead.
Removing intermediate container bfa65af9736b
The command '/bin/sh -c apt-get update &&     apt-get install -y wget &&     cd /tmp && wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB &&     apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB &&     echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list &&     apt-get update && DEBIAN_FRONTEND=noninteractive $APT_INSTALL intel-mkl-64bit-2018.4-057' returned a non-zero code: 100

Problem may be related to 2018 topic (#779730) i've found googling fingerprint

Using MKL to Multiply Non-consecutive columns by a mtrix

$
0
0

Hi

I am trying to use MKL to do some matrix multiplications. However I need to multiply specific columns in one matrix to another matrix. The problem is that cblac_dgemm takes successive columns, so how can I do this and only multiply certain columns knowing the starting pointer of each of course ?? I tried using a for loop to multiply each column by the matrix but the execution time is much larger than taking successive columns all at once I also don't want to copy the columns to a new variable to but them in a successive order because this also takes long time.

I tried using pthreads to do it in a more paralleled way however still no much improvement.

How does MKL handle parallelization and make it much better than OpenMP and pthreads?

Thanks in advance

Ahmed

Does the custom MKL dll include fortran runtime?

Which function could solve linear least square with inequality constraints?

$
0
0

I want to solve X in a linear system A*X=B with constraints that all elements in X are non-negative. It is a Non-negative Least Squares (NNLS) problem. Do you know which function can be used for it? I tried the function trnlspbc_solve (nonlinear least squares problem with linear constraints), but it does not work well for this linear least square problem. Any ideas? 


Which function could solve linear least square with inequality constraints?

$
0
0

I want to solve X in a linear system A*X=B with a constraint that all elements in X are non-negative. It is a Non-negative Least Squares (NNLS) problem. Do you know which function in the MKL library for this problem? I tried to use trnlspbc_solve(), the Nonlinear Least Squares Problem with Linear Constraints, but it doesn't work well. Any ideas? 

Anaconda MKL and threading on macOS

$
0
0

Hi,

I am not sure if this is the correct forum for this, so bear with me!

I am using MKL (2019.1) installed via Miniconda (4.6.8) on macOS (10.14.2). The open source code I develop (gprMax - https://github.com/gprMax/gprMax) is written in Python, uses NumPy, and has modules that are Cythonized and use OpenMP. The conda environment that I use is relatively simple - https://github.com/gprMax/gprMax/blob/master/conda_env.yml On Linux and Windows the simulation software behaves normally, however, on macOS the simulations become unstable. This has only started happening recently when I updated the conda environment. Interestingly, if I set the simulation to use a single thread on macOS it behaves normally and is stable. Also if I use OpenBLAS instead of MKL, by specifying blas=*=openblas in my conda environment file, I have no problems with stability and using multiple threads.

I am interested to know if anyone else has experience similar problems, and also how I might further debug the issue.

Kind regards,

Craig

Compiling program, linking mkl/lapack/blas

$
0
0

Hi. I am trying to compile a program(COIN OR CBC and its dependencies) using intel compilers and mkl to get best possible performance.

The program and its dependencies can be compiled using:  ./configure -> make -> make install

Before I used the flags: --enable-blas="-lrefblas" and --enable-lapack="-llapack"

So I want to ensure that the intel mkl blas/lapack libraries are used.
How do I make sure of this?
Also, I want to ensure that the mkl library is used for math operations (instead of the regular -lm).Is this the default when using intel compiler, or do I need to specify this in a way?

FFTW2

$
0
0

I use vs2013+ivf2013 program my fortran code, The FFTW2 wrappers to Intel MKL provide the following subroutines for calling from Fortran:
call fftw_f77_create_plan(plan, n, dir, flags)
call fftw_f77(plan, howmany, in, istride, idist, out, ostride, odist)
call fftw_f77_one(plan, in, out)
call fftw_f77_threads(nthreads, plan, howmany, in, istride, idist, out, ostride, odist)
call fftw_f77_threads_one(nthreads, plan, in, out)
call fftw_f77_destroy_plan(plan)
call fftwnd_f77_create_plan(plan, rank, n, dir, flags)
call fftw2d_f77_create_plan(plan, nx, ny, dir, flags)
call fftw3d_f77_create_plan(plan, nx, ny, nz, dir, flags)
call fftwnd_f77(plan, howmany, in, istride, idist, out, ostride, odist)
call fftwnd_f77_one(plan, in, out)
call fftwnd_f77_threads(nthreads, plan, howmany, in, istride, idist, out, ostride,odist)
call fftwnd_f77_threads_one(nthreads, plan, in, out)

According to the 'FFTW Interface to Intel® Math Kernel Library', just provide the method in Linux like this:make libintel64,,,Any one know how to do in windows?   Anyone could tell me the  detials of using above subroutines?

MKL - General Polynomial Fitting function?

$
0
0

The General Polynomial Fitting Function in MKL

Hi,

I’m looking for a general Polynomial Fitting function in MKL, which is similar to Polyfit function from Matlab, OptiVec and Armadillo.  This function uses two set of input data X and Y to determine the coefficients ai of a polynomial:

P= a0 + a1Xi + a2Xi2 ... anXin

Where,

χ2 = sum( 1/σi2 * (Pi - Yi));

Is minimized.

I have searched MKL Data Fitting Library and found that all of routines are Spline-based.  In MKL LAPACK library, I found some routines the Least Squares ones.

I understand that,

  1. as the order of the polynomial increases, Spline-based methods are preferable over polynomial interpolation because its interpolation error increases
  2. when the size of X and Y > the order of the polynomial increases, the Least Squares fit will be used

What I need, however,  is a general Polynomial Fitting function described above.  Is there such function and where can I find it in MKL (or IPP)?

Viewing all 3005 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>