//
// Example MAPM C++ code with output.
//
// Note the use of literal character strings as constants.
//
// This allows the user to specify constants that cannot be
// represented by a standard C datatype, such as a number with
// 200 digits or a number with a very large or small exponent
// (i.e., 6.21E-3714).
//
char outbuf[256];
MAPM u, v, w, x, y, z; // arbitrary precision datatype
m_apm_cpp_precision(50); // set MINIMUM precision level
// for all calculations
x = 9.34231;
y = -21;
z = "-8.982349249829824921479824924792347921E-17";
w = (82.30421 + sin(x / "21.11")
/ exp(y * 0.0726426)) * "4.32917E-2" / z;
v = "3.742416" * log(-w);
u = sqrt(v) + cbrt(v);
x.toString(outbuf, 50); printf("x = [%s] \n",outbuf);
y.toString(outbuf, 50); printf("y = [%s] \n",outbuf);
z.toString(outbuf, 50); printf("z = [%s] \n",outbuf);
w.toString(outbuf, 50); printf("w = [%s] \n",outbuf);
v.toString(outbuf, 50); printf("v = [%s] \n",outbuf);
u.toString(outbuf, 50); printf("u = [%s] \n",outbuf);
//
// end sample code
//
/*
Output from above code :
x = [9.34231000000000000000000000000000000000000000000000E+0]
y = [-2.10000000000000000000000000000000000000000000000000E+1]
z = [-8.98234924982982492147982492479234792100000000000000E-17]
w = [-4.06165846135776503301770738763183914451375637893923E+16]
v = [1.43121038693447060414449698088102300924570797933606E+2]
u = [1.71941170788317776083850581271655444461072359345223E+1]
*/
End of Listing