[Scilab-Dev] Problem using double API

Serge Steer Serge.Steer at scilab.org
Thu Nov 5 16:38:00 CET 2009


In my opinion the code should be (createMatrixOfDouble allocates the
array and returns a pointer)

#include "stack-c.h"
#include "api_scilab.h"
#include "Scierror.h"

int oclexec(char* fname)
{
SciErr sciErr;
  int *pB;
  int rowsB,colsB;
  double* mB;
  int k;

  sciErr = createMatrixOfDouble(pvApiCtx, Rhs + 1, rowsB, colsB,mB );
  if(sciErr.iErr)
    {
         printError(&sciErr, 0);
        return 0;
     }

  for(k=0;k<rowsB*colsB;++k)
  {
         mB[k]=1.0;
  }
  LhsVar(1)=Rhs+1;

  return 0;
}



Vincent Lejeune a écrit :
>
> Hi,
>
> I don't know if it's a bug or if something is missing in my code...
> The issue is : using the following code, I cannot get scilab to
> display the
> mB matrix :
>
> #include "stack-c.h"
> #include "api_scilab.h"
> #include "Scierror.h"
>
> int oclexec(char* fname)
> {
> SciErr sciErr;
>   int *pB;
>   int rowsB,colsB;
>   double* mB;
>   int k;
>
>   mB=(double*)malloc(rowsB*colsB*sizeof(double));
>
>
>   for(k=0;k<rowsB*colsB;++k)
>   {
>   mB[k]=1.0;
>   }
>
>   sciErr = createMatrixOfDouble(pvApiCtx, Rhs + 1, rowsB, colsB,mB );
>   if(sciErr.iErr)
> {
> printError(&sciErr, 0);
> return 0;
> }
>
>   LhsVar(1)=Rhs+1;
>
>   return 0;
> }
>
> The gateway is compiling fine, but when I type B=ocltest(A); , the B
> matrix
> is equal to A, whereas it is expected to be a ones matrix.
>
> On the other hand, the unary test double_writing_api.tst works.
> I'am currently using the windows 1257195239 build (taken from the nightly
> build of scilab 5.2)
>
> Regards,
> Vincent
>




More information about the dev mailing list