Для
перекодировки процедур на язык Си используется
команда C (выражение, опция), где
"выражение" -
любое выражение Maple , массив
выражений или процедура.
Необязательная опция может быть одной
из следующих:
filename=name - полученный код выводится в файл
с именем name
optimized - выполняется оптимизация Си -
кода
digits=n - все константы преобразуются в
числа с плавающей запятой c n знаками точности..
precision =single или precision=double -
двойная или ординарная точность констант.
Команда С должна вызываться с
помощью строки( C ).
Примеры:
Многочлен
> readlib(C):
f := 1-2*x+3*x^2-2*x^3+x^4;
> C(f);
t0 = 1.0-2.0*x+3.0*x*x-2.0*x*x*x+x*x*x*x;
> C(f,optimized);
t2 = x*x;
t6 = t2*t2;
t7 = 1.0-2.0*x+3.0*t2-2.0*t2*x+t6;
Выражение с элементарными функциями и
константами
> f := Pi*ln(x^2)-sqrt(2)*ln(x^2)^2;
> C(f);
t0 =
0.3141592653589793E1*log(x*x)-sqrt(2.0)*pow(log(x*x),2.0);
> C(f,optimized);
t1 = x*x;
t2 = log(t1);
t4 = sqrt(2.0);
t5 = t2*t2;
t7 = 0.3141592653589793E1*t2-t4*t5;
Массив выражений
> v :=
array([exp(-x)*x,exp(-x)*x^2,exp(-x)*x^3]);
> C(v,optimized);
t1 = exp(-x);
t3 = x*x;
v[0] = t1*x;
v[1] = t1*t3;
v[2] = t1*t3*x;
Матрица с неопределенным элементом
> A := array(1..2,1..2,symmetric):
A[1,1] := log(x): A[1,2] := 1-log(x):
print(A);
> C(A,precision=double);
A[0][0] = log(x);
A[0][1] = 1.0-log(x);
A[1][0] = 1.0-log(x);
A[1][1] = undefined;
> C(A,optimized);
t1 = log(x);
t2 = 1.0-t1;
A[0][0] = t1;
A[0][1] = t2;
A[1][0] = t2;
A[1][1] = undefined;
Для перекодировки процедур Maple на
язык Фортран используется команда fortran ,
вызываемая и действующая аналогично команде C
.
|