Hello,
I am writing a program in C that uses the open maple library. It is not the first time that I use it but now I am facing a strange problem that involves the simplify command: suppose a,x,y are symbols that are not previously used in maple, the following lines
1) EvalMapleStatement(kv, "simplify((a*x^2-y^2)/(x^2*y^2-1));");
2) EvalMapleStatement(kv, "simplify((2*x^2-y^2)/(x^2*y^2-1));");
only differ by the fact that the parameter a is replaced by 2 in the second line. But they return the following output:
1) (a*x^2-y^2)/(x^2*y^2-1)
that is correct, nothing to simplify..
2) Error, (in gcd/LinZip) input must be polynomials over the integers
I must be doing something wrong but I am getting nowhere...
Thanks...
P.S. This is the complete listing
#include <stdio.h>
#include <stdlib.h>
#include "maplec.h"
static void M_DECL textCallBack( void *data, int tag, char *output )
{
printf("%s\n",output);
}
int main( int argc, char *argv[] )
{
char err[2048]; /* command input and error string buffers */
MKernelVector kv; /* Maple kernel handle */
MCallBackVectorDesc cb = { textCallBack,
0, /* errorCallBack not used */
0, /* statusCallBack not used */
0, /* readLineCallBack not used */
0, /* redirectCallBack not used */
0, /* streamCallBack not used */
0, /* queryInterrupt not used */
0 /* callBackCallBack not used */
};
ALGEB r, l; /* Maple data-structures */
char *myargv[]={"maple"};
int myargc=1;
if( (kv=StartMaple(myargc,myargv,&cb,NULL,NULL,err)) == NULL ) {
printf("Fatal error, %s\n",err);
return( 1 );
}
EvalMapleStatement(kv, "simplify((a*x^2-y^2)/(x^2*y^2-1));");
EvalMapleStatement(kv, "simplify((2*x^2-y^2)/(x^2*y^2-1));");
StopMaple(kv);
return( 0 );
}
compiled with
gcc prova.c -I /Library/Frameworks/Maple.framework/Versions/Current/extern/include/ -L /Library/Frameworks/Maple.framework/Versions/Current/bin.APPLE_UNIVERSAL_OSX/ -l maplec