For a description of the options used in the following examples, see CodeGenerationOptions.
>
|
|
Translate a simple expression and assign it to the name in the target code.
>
|
|
w = -2 * x * z + y * z + x
| |
Translate a list and assign it to an array with the name in the target code.
>
|
|
Translate a computation sequence. Optimize the input first.
>
|
|
>
|
|
s = 0.10e1 + x
t1 = log(s)
t2 = exp(-x)
t = t2 * t1
r = x * t + t2
| |
Declare that is a float and is an integer. Return the result in a string.
>
|
|
Translate a procedure. Assume that all untyped variables have type integer.
>
|
f := proc(x, y, z) return x*y-y*z+x*z; end proc:
|
>
|
|
function f(x, y, z)
return(y * x - y * z + x * z)
end
| |
Translate a procedure containing an implicit return. A new variable is created to hold the return value.
>
|
f := proc(n)
local x, i;
x := 0.0;
for i to n do
x := x + i;
end do;
end proc:
|
function f(n)
x = 0.0e0
for i = 1:n
x = x + i
cgret = x
end
return(cgret)
end
| |
Translate a linear combination of hyperbolic trigonometric functions.
>
|
|
cg0 = 2 * cosh(x) - 7 * tanh(x)
| |
Translate a procedure with no return value containing a printf statement.
>
|
f := proc(a::integer, p::integer)
printf("The integer remainder of %d divided by %d is: %d\n", a, p, irem(a, p));
end proc:
|
function f(a, p)
printf("The integer remainder of %d divided by %d is: %d\n", a, p, a % p)
end
| |
Translate a procedure involving linear algebra.
>
|
detHilbert := proc(M, n :: posint) uses LinearAlgebra;
return Determinant( HilbertMatrix( n ) );
end proc:
|
function detHilbert(M, n)
return(det(LinearAlgebra:-HilbertMatrix(n)))
end
| |