| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 13.1 Comments | ||
| 13.2 Files | ||
| 13.3 Functions and Variables for File Input and Output | ||
| 13.4 Functions and Variables for TeX Output | ||
| 13.5 Functions and Variables for Fortran Output |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
A comment in Maxima input is any text between /* and */.
The Maxima parser treats a comment as whitespace for the purpose of finding
tokens in the input stream; a token always ends at a comment. An input such as
a/* foo */b contains two tokens, a and b,
and not a single token ab. Comments are otherwise ignored by Maxima;
neither the content nor the location of comments is stored in parsed input
expressions.
Comments can be nested to arbitrary depth. The /* and */
delimiters form matching pairs. There must be the same number of /*
as there are */.
Examples:
(%i1) /* aa is a variable of interest */ aa : 1234;
(%o1) 1234
(%i2) /* Value of bb depends on aa */ bb : aa^2;
(%o2) 1522756
(%i3) /* User-defined infix operator */ infix ("b");
(%o3) b
(%i4) /* Parses same as a b c, not abc */ a/* foo */b/* bar */c;
(%o4) a b c
(%i5) /* Comments /* can be nested /* to any depth */ */ */ 1 + xyz;
(%o5) xyz + 1
@ref{Category: Syntax}
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
A file is simply an area on a particular storage device which contains data or text. Files on the disks are figuratively grouped into "directories". A directory is just a list of files. Commands which deal with files are:
appendfile batch batchload closefile file_output_append filename_merge file_search file_search_maxima file_search_lisp file_search_demo file_search_usage file_search_tests file_type file_type_lisp file_type_maxima load load_pathname loadfile loadprint pathname_directory pathname_name pathname_type printfile save stringout with_stdout writefile
When a file name is passed to functions like plot2d,
save, or writefile and the file name does not include a path,
Maxima stores the file in the current working directory. The current working
directory depends on the system like Windows or Linux and on the installation.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Appends a console transcript to filename. appendfile is the same
as writefile, except that the transcript file, if it exists, is
always appended.
closefile closes the transcript file opened by appendfile or
writefile.
@ref{Category: File output} · @ref{Category: Console interaction}
option)
batch(filename) reads Maxima expressions from filename and
evaluates them. batch searches for filename in the list
file_search_maxima. See also file_search.
batch(filename, is like demo)demo(filename).
In this case batch searches for filename in the list
file_search_demo. See demo.
batch(filename, is like test)run_testsuite with the
option display_all=true. For this case batch searches
filename in the list file_search_maxima and not in the list
file_search_tests like run_testsuite. Furthermore,
run_testsuite runs tests which are in the list
testsuite_files. With batch it is possible to run any file in
a test mode, which can be found in the list file_search_maxima. This is
useful, when writing a test file.
filename comprises a sequence of Maxima expressions, each terminated with
; or $. The special variable % and the function
%th refer to previous results within the file. The file may include
:lisp constructs. Spaces, tabs, and newlines in the file are ignored.
A suitable input file may be created by a text editor or by the
stringout function.
batch reads each input expression from filename, displays the input
to the console, computes the corresponding output expression, and displays the
output expression. Input labels are assigned to the input expressions and
output labels are assigned to the output expressions. batch evaluates
every input expression in the file unless there is an error. If user input is
requested (by asksign or askinteger, for example) batch
pauses to collect the requisite input and then continue.
It may be possible to halt batch by typing control-C at the
console. The effect of control-C depends on the underlying Lisp
implementation.
batch has several uses, such as to provide a reservoir for working
command lines, to give error-free demonstrations, or to help organize one's
thinking in solving complex problems.
batch evaluates its argument. batch returns the path of
filename as a string, when called with no second argument or with the
option demo. When called with the option test, the return value
is a an empty list [] or a list with filename and the numbers of
the tests which have failed.
See also load, batchload, and demo.
@ref{Category: Session management} · @ref{Category: File input}
Reads Maxima expressions from filename and evaluates them, without
displaying the input or output expressions and without assigning labels to
output expressions. Printed output (such as produced by print or
describe)) is displayed, however.
The special variable % and the function %th refer to previous
results from the interactive interpreter, not results within the file.
The file cannot include :lisp constructs.
batchload returns the path of filename, as a string.
batchload evaluates its argument.
@ref{Category: Session management} · @ref{Category: File input}
Closes the transcript file opened by writefile or appendfile.
@ref{Category: File output} · @ref{Category: Console interaction}
Default value: false
file_output_append governs whether file output functions append or
truncate their output file. When file_output_append is true, such
functions append to their output file. Otherwise, the output file is truncated.
save, stringout, and with_stdout respect
file_output_append. Other functions which write output files do not
respect file_output_append. In particular, plotting and translation
functions always truncate their output file, and tex and
appendfile always append.
@ref{Category: File output} · @ref{Category: Global flags}
Constructs a modified path from path and filename. If the final
component of path is of the form ###.something, the component
is replaced with filename.something. Otherwise, the final
component is simply replaced by filename.
The result is a Lisp pathname object.
@ref{Category: File input} · @ref{Category: File output}
file_search searches for the file filename and returns the path to
the file (as a string) if it can be found; otherwise file_search returns
false. file_search (filename) searches in the default
search directories, which are specified by the
file_search_maxima, file_search_lisp, and
file_search_demo variables.
file_search first checks if the actual name passed exists,
before attempting to match it to "wildcard" file search patterns.
See file_search_maxima concerning file search patterns.
The argument filename can be a path and file name, or just a file name, or, if a file search directory includes a file search pattern, just the base of the file name (without an extension). For example,
file_search ("/home/wfs/special/zeta.mac");
file_search ("zeta.mac");
file_search ("zeta");
all find the same file, assuming the file exists and
/home/wfs/special/###.mac is in file_search_maxima.
file_search (filename, pathlist) searches only in the
directories specified by pathlist, which is a list of strings. The
argument pathlist supersedes the default search directories, so if the
path list is given, file_search searches only the ones specified, and not
any of the default search directories. Even if there is only one directory in
pathlist, it must still be given as a one-element list.
The user may modify the default search directories.
See file_search_maxima.
file_search is invoked by load with file_search_maxima and
file_search_lisp as the search directories.
@ref{Category: File input}
These variables specify lists of directories to be searched by
load, demo, and some other Maxima functions. The default
values of these variables name various directories in the Maxima installation.
The user can modify these variables, either to replace the default values or to append additional directories. For example,
file_search_maxima: ["/usr/local/foo/###.mac",
"/usr/local/bar/###.mac"]$
replaces the default value of file_search_maxima, while
file_search_maxima: append (file_search_maxima,
["/usr/local/foo/###.mac", "/usr/local/bar/###.mac"])$
appends two additional directories. It may be convenient to put such an
expression in the file maxima-init.mac so that the file search path is
assigned automatically when Maxima starts.
See also Introduction for Runtime Environment.
Multiple filename extensions and multiple paths can be specified by special
"wildcard" constructions. The string ### expands into the sought-after
name, while a comma-separated list enclosed in curly braces
{foo,bar,baz} expands into multiple strings. For example, supposing
the sought-after name is neumann,
"/home/{wfs,gcj}/###.{lisp,mac}"
expands into /home/wfs/neumann.lisp, /home/gcj/neumann.lisp,
/home/wfs/neumann.mac, and /home/gcj/neumann.mac.
@ref{Category: File input} · @ref{Category: Global variables}
Returns a guess about the content of filename, based on the filename extension. filename need not refer to an actual file; no attempt is made to open the file and inspect the content.
The return value is a symbol, either object, lisp, or
maxima. If the extension is matches one of the values in
file_type_maxima, file_type returns maxima. If the
extension matches one of the values in file_type_lisp, file_type
returns lisp. If none of the above, file_type returns
object.
See also pathname_type.
See file_type_maxima and file_type_lisp for the default values.
Examples:
(%i2) map('file_type,
["test.lisp", "test.mac", "test.dem", "test.txt"]);
(%o2) [lisp, maxima, maxima, object]
@ref{Category: File input}
Default value: [l, lsp, lisp]
file_type_lisp is a list of file extensions that maxima recognizes
as denoting a Lisp source file.
See also file_type.
Default value: [mac, mc, demo, dem, dm1, dm2, dm3, dmt]
file_type_maxima is a list of file extensions that maxima recognizes
as denoting a Maxima source file.
See also file_type.
Evaluates expressions in filename, thus bringing variables, functions, and
other objects into Maxima. The binding of any existing object is clobbered by
the binding recovered from filename. To find the file, load calls
file_search with file_search_maxima and
file_search_lisp as the search directories. If load succeeds, it
returns the name of the file. Otherwise load prints an error message.
load works equally well for Lisp code and Maxima code. Files created by
save, translate_file, and compile_file, which
create Lisp code, and stringout, which creates Maxima code, can all
be processed by load. load calls loadfile to load Lisp
files and batchload to load Maxima files.
load does not recognize :lisp constructs in Maxima files, and
while processing filename, the global variables _, __,
%, and %th have whatever bindings they had when load was
called.
It is also to note that structures will only be read back as structures if
they have been defined by defstruct before the load command
is called.
See also loadfile, batch, batchload, and
demo. loadfile processes Lisp files; batch,
batchload, and demo process Maxima files.
See file_search for more detail about the file search mechanism.
load evaluates its argument.
@ref{Category: Session management} · @ref{Category: File input}
Default value: false
When a file is loaded with the functions load, loadfile or
batchload the system variable load_pathname is bound to the
pathname of the file which is processed.
The variable load_pathname can be accessed from the file during the
loading.
Example:
Suppose we have a batchfile test.mac in the directory
"/home/dieter/workspace/mymaxima/temp/" with the following commands
print("The value of load_pathname is: ", load_pathname)$
print("End of batchfile")$
then we get the following output
(%i1) load("/home/dieter/workspace/mymaxima/temp/test.mac")$
The value of load_pathname is:
/home/dieter/workspace/mymaxima/temp/test.mac
End of batchfile
@ref{Category: File input}
Evaluates Lisp expressions in filename. loadfile does not invoke
file_search, so filename must include the file extension and
as much of the path as needed to find the file.
loadfile can process files created by save,
translate_file, and compile_file. The user may find it
more convenient to use load instead of loadfile.
@ref{Category: Session management} · @ref{Category: File input}
Default value: true
loadprint tells whether to print a message when a file is loaded.
loadprint is true, always print a message.
loadprint is 'loadfile, print a message only if
a file is loaded by the function loadfile.
loadprint is 'autoload,
print a message only if a file is automatically loaded.
See setup_autoload.
loadprint is false, never print a message.
@ref{Category: File input} · @ref{Category: Global flags}
Returns a list of the files and directories found in path in the file system.
path may contain wildcard characters (i.e., characters which represent unspecified parts of the path), which include at least the asterisk on most systems, and possibly other characters, depending on the system.
directory relies on the Lisp function DIRECTORY,
which may have implementation-specific behavior.
@ref{Category: File input}
These functions return the components of pathname.
Examples:
(%i1) pathname_directory("/home/dieter/maxima/changelog.txt");
(%o1) /home/dieter/maxima/
(%i2) pathname_name("/home/dieter/maxima/changelog.txt");
(%o2) changelog
(%i3) pathname_type("/home/dieter/maxima/changelog.txt");
(%o3) txt
@ref{Category: File input}
Prints the file named by path to the console. path may be a string or a symbol; if it is a symbol, it is converted to a string.
If path names a file which is accessible from the current working
directory, that file is printed to the console. Otherwise, printfile
attempts to locate the file by appending path to each of the elements of
file_search_usage via filename_merge.
printfile returns path if it names an existing file,
or otherwise the result of a successful filename merge.
@ref{Category: File input} · @ref{Category: Console interaction}
Stores the current values of name_1, name_2, name_3, …,
in filename. The arguments are the names of variables, functions, or
other objects. If a name has no value or function associated with it, it is
ignored. save returns filename.
save stores data in the form of Lisp expressions.
If filename ends in .lisp the
data stored by save may be recovered by load (filename).
See load.
The global flag file_output_append governs whether save appends or
truncates the output file. When file_output_append is true,
save appends to the output file. Otherwise, save truncates the
output file. In either case, save creates the file if it does not yet
exist.
The special form save (filename, values, functions, labels, ...)
stores the items named by values, functions,
labels, etc. The names may be any specified by the variable
infolists. values comprises all user-defined variables.
The special form save (filename, [m, n]) stores the
values of input and output labels m through n. Note that m
and n must be literal integers. Input and output labels may also be
stored one by one, e.g., save ("foo.1", %i42, %o42).
save (filename, labels) stores all input and output labels.
When the stored labels are recovered, they clobber existing labels.
The special form save (filename, name_1=expr_1,
name_2=expr_2, ...) stores the values of expr_1,
expr_2, …, with names name_1, name_2, …
It is useful to apply this form to input and output labels, e.g.,
save ("foo.1", aa=%o88). The right-hand side of the equality in this
form may be any expression, which is evaluated. This form does not introduce
the new names into the current Maxima environment, but only stores them in
filename.
These special forms and the general form of save may be mixed at will.
For example, save (filename, aa, bb, cc=42, functions, [11, 17]).
The special form save (filename, all) stores the current state of
Maxima. This includes all user-defined variables, functions, arrays, etc., as
well as some automatically defined items. The saved items include system
variables, such as file_search_maxima or showtime, if they
have been assigned new values by the user; see myoptions.
save evaluates filename and quotes all other arguments.
@ref{Category: Session management} · @ref{Category: File output}
stringout writes expressions to a file in the same form the expressions
would be typed for input. The file can then be used as input for the
batch or demo commands, and it may be edited for any purpose.
stringout can be executed while writefile is in progress.
The global flag file_output_append governs whether stringout
appends or truncates the output file. When file_output_append is
true, stringout appends to the output file. Otherwise,
stringout truncates the output file. In either case, stringout
creates the file if it does not yet exist.
The general form of stringout writes the values of one or more
expressions to the output file. Note that if an expression is a
variable, only the value of the variable is written and not the name
of the variable. As a useful special case, the expressions may be
input labels (%i1, %i2, %i3, …) or output labels
(%o1, %o2, %o3, …).
If grind is true, stringout formats the output using the
grind format. Otherwise the string format is used. See
grind and string.
The special form stringout (filename, [m, n]) writes
the values of input labels m through n, inclusive.
The special form stringout (filename, input) writes all
input labels to the file.
The special form stringout (filename, functions) writes all
user-defined functions (named by the global list functions)) to the
file.
The special form stringout (filename, values) writes all
user-assigned variables (named by the global list values)) to the file.
Each variable is printed as an assignment statement, with the name of the
variable, a colon, and its value. Note that the general form of
stringout does not print variables as assignment statements.
@ref{Category: Session management} · @ref{Category: File output}
Evaluates expr_1, expr_2, expr_3, … and writes any
output thus generated to a file f or output stream s. The evaluated
expressions are not written to the output. Output may be generated by
print, display, grind, among other functions.
The global flag file_output_append governs whether with_stdout
appends or truncates the output file f. When file_output_append
is true, with_stdout appends to the output file. Otherwise,
with_stdout truncates the output file. In either case,
with_stdout creates the file if it does not yet exist.
with_stdout returns the value of its final argument.
See also writefile.
(%i1) with_stdout ("tmp.out", for i:5 thru 10 do
print (i, "! yields", i!))$
(%i2) printfile ("tmp.out")$
5 ! yields 120
6 ! yields 720
7 ! yields 5040
8 ! yields 40320
9 ! yields 362880
10 ! yields 3628800
@ref{Category: File output}
Begins writing a transcript of the Maxima session to filename. All interaction between the user and Maxima is then recorded in this file, just as it appears on the console.
As the transcript is printed in the console output format, it cannot be reloaded
into Maxima. To make a file containing expressions which can be reloaded,
see save and stringout. save stores expressions in Lisp
form, while stringout stores expressions in Maxima form.
The effect of executing writefile when filename already exists
depends on the underlying Lisp implementation; the transcript file may be
clobbered, or the file may be appended. appendfile always appends to
the transcript file.
It may be convenient to execute playback after writefile to save
the display of previous interactions. As playback displays only the
input and output variables (%i1, %o1, etc.), any output generated
by a print statement in a function (as opposed to a return value) is not
displayed by playback.
closefile closes the transcript file opened by writefile or
appendfile.
@ref{Category: File output} · @ref{Category: Console interaction}
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Note that the built-in TeX output functionality of wxMaxima makes no use of the functions described here but uses its own implementation instead.
Prints a representation of an expression suitable for the TeX document preparation system. The result is a fragment of a document, which can be copied into a larger document but not processed by itself.
tex (expr) prints a TeX representation of expr on the
console.
tex (label) prints a TeX representation of the expression named by
label and assigns it an equation label (to be displayed to the left of the
expression). The TeX equation label is the same as the Maxima label.
destination may be an output stream or file name. When destination
is a file name, tex appends its output to the file. The functions
openw and opena create output streams.
tex (expr, false) and tex (label, false)
return their TeX output as a string.
tex evaluates its first argument after testing it to see if it is a
label. Quote-quote '' forces evaluation of the argument, thereby
defeating the test and preventing the label.
See also texput.
Examples:
(%i1) integrate (1/(1+x^3), x);
2 x - 1
2 atan(-------)
log(x - x + 1) sqrt(3) log(x + 1)
(%o1) - --------------- + ------------- + ----------
6 sqrt(3) 3
(%i2) tex (%o1);
$$-{{\log \left(x^2-x+1\right)}\over{6}}+{{\arctan \left({{2\,x-1
}\over{\sqrt{3}}}\right)}\over{\sqrt{3}}}+{{\log \left(x+1\right)
}\over{3}}\leqno{\tt (\%o1)}$$
(%o2) (\%o1)
(%i3) tex (integrate (sin(x), x));
$$-\cos x$$
(%o3) false
(%i4) tex (%o1, "foo.tex");
(%o4) (\%o1)
tex (expr, false) returns its TeX output as a string.
(%i1) S : tex (x * y * z, false); (%o1) $$x\,y\,z$$ (%i2) S; (%o2) $$x\,y\,z$$
@ref{Category: TeX output} · @ref{Category: File output}
Returns a string which represents the TeX output for the expressions e. The TeX output is not enclosed in delimiters for an equation or any other environment.
Examples:
(%i1) tex1 (sin(x) + cos(x)); (%o1) \sin x+\cos x
Assign the TeX output for the atom a, which can be a symbol or the name of an operator.
texput (a, s) causes the tex function to interpolate
the string s into the TeX output in place of a.
texput (a, f) causes the tex function to call the
function f to generate TeX output. f must accept one argument,
which is an expression which has operator a, and must return a string
(the TeX output). f may call tex1 to generate TeX output for the
arguments of the input expression.
texput (a, s, operator_type), where operator_type
is prefix, infix, postfix, nary, or nofix,
causes the tex function to interpolate s into the TeX output in
place of a, and to place the interpolated text in the appropriate
position.
texput (a, [s_1, s_2], matchfix) causes the tex
function to interpolate s_1 and s_2 into the TeX output on either
side of the arguments of a. The arguments (if more than one) are
separated by commas.
texput (a, [s_1, s_2, s_3], matchfix) causes the
tex function to interpolate s_1 and s_2 into the TeX output
on either side of the arguments of a, with s_3 separating the
arguments.
Examples:
Assign TeX output for a variable.
(%i1) texput (me,"\\mu_e"); (%o1) \mu_e (%i2) tex (me); $$\mu_e$$ (%o2) false
Assign TeX output for an ordinary function (not an operator).
(%i1) texput (lcm, "\\mathrm{lcm}");
(%o1) \mathrm{lcm}
(%i2) tex (lcm (a, b));
$$\mathrm{lcm}\left(a , b\right)$$
(%o2) false
Call a function to generate TeX output.
(%i1) texfoo (e) := block ([a, b], [a, b] : args (e),
concat("\\left[\\stackrel{",tex1(b),"}{",tex1(a),"}\\right]"))$
(%i2) texput (foo, texfoo);
(%o2) texfoo
(%i3) tex (foo (2^x, %pi));
$$\left[\stackrel{\pi}{2^{x}}\right]$$
(%o3) false
Assign TeX output for a prefix operator.
(%i1) prefix ("grad");
(%o1) grad
(%i2) texput ("grad", " \\nabla ", prefix);
(%o2) \nabla
(%i3) tex (grad f);
$$ \nabla f$$
(%o3) false
Assign TeX output for an infix operator.
(%i1) infix ("~");
(%o1) ~
(%i2) texput ("~", " \\times ", infix);
(%o2) \times
(%i3) tex (a ~ b);
$$a \times b$$
(%o3) false
Assign TeX output for a postfix operator.
(%i1) postfix ("##");
(%o1) ##
(%i2) texput ("##", "!!", postfix);
(%o2) !!
(%i3) tex (x ##);
$$x!!$$
(%o3) false
Assign TeX output for a nary operator.
(%i1) nary ("@@");
(%o1) @@
(%i2) texput ("@@", " \\circ ", nary);
(%o2) \circ
(%i3) tex (a @@ b @@ c @@ d);
$$a \circ b \circ c \circ d$$
(%o3) false
Assign TeX output for a nofix operator.
(%i1) nofix ("foo");
(%o1) foo
(%i2) texput ("foo", "\\mathsc{foo}", nofix);
(%o2) \mathsc{foo}
(%i3) tex (foo);
$$\mathsc{foo}$$
(%o3) false
Assign TeX output for a matchfix operator.
(%i1) matchfix ("<<", ">>");
(%o1) <<
(%i2) texput ("<<", [" \\langle ", " \\rangle "], matchfix);
(%o2) [ \langle , \rangle ]
(%i3) tex (<<a>>);
$$ \langle a \rangle $$
(%o3) false
(%i4) tex (<<a, b>>);
$$ \langle a , b \rangle $$
(%o4) false
(%i5) texput ("<<", [" \\langle ", " \\rangle ", " \\, | \\,"],
matchfix);
(%o5) [ \langle , \rangle , \, | \,]
(%i6) tex (<<a>>);
$$ \langle a \rangle $$
(%o6) false
(%i7) tex (<<a, b>>);
$$ \langle a \, | \,b \rangle $$
(%o7) false
@ref{Category: TeX output}
Customize the TeX environment output by tex.
As maintained by these functions, the TeX environment comprises two strings:
one is printed before any other TeX output, and the other is printed after.
Only the TeX environment of the top-level operator in an expression is output; TeX environments associated with other operators are ignored.
get_tex_environment returns the TeX environment which is applied
to the operator op; returns the default if no other environment
has been assigned.
set_tex_environment assigns the TeX environment for the operator
op.
Examples:
(%i1) get_tex_environment (":=");
(%o1) [
\begin{verbatim}
, ;
\end{verbatim}
]
(%i2) tex (f (x) := 1 - x);
\begin{verbatim}
f(x):=1-x;
\end{verbatim}
(%o2) false
(%i3) set_tex_environment (":=", "$$", "$$");
(%o3) [$$, $$]
(%i4) tex (f (x) := 1 - x);
$$f(x):=1-x$$
(%o4) false
@ref{Category: TeX output}
Customize the TeX environment output by tex.
As maintained by these functions, the TeX environment comprises two strings:
one is printed before any other TeX output, and the other is printed after.
get_tex_environment_default returns the TeX environment which is
applied to expressions for which the top-level operator has no
specific TeX environment (as assigned by set_tex_environment).
set_tex_environment_default assigns the default TeX environment.
Examples:
(%i1) get_tex_environment_default ();
(%o1) [$$, $$]
(%i2) tex (f(x) + g(x));
$$g\left(x\right)+f\left(x\right)$$
(%o2) false
(%i3) set_tex_environment_default ("\\begin{equation}
", "
\\end{equation}");
(%o3) [\begin{equation}
,
\end{equation}]
(%i4) tex (f(x) + g(x));
\begin{equation}
g\left(x\right)+f\left(x\right)
\end{equation}
(%o4) false
@ref{Category: TeX output}
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Default value: 0
fortindent controls the left margin indentation of
expressions printed out by the fortran command. 0 gives normal
printout (i.e., 6 spaces), and positive values will causes the
expressions to be printed farther to the right.
@ref{Category: Translation and compilation}
Prints expr as a Fortran statement.
The output line is indented with spaces.
If the line is too long, fortran prints continuation lines.
fortran prints the exponentiation operator ^ as **,
and prints a complex number a + b %i in the form (a,b).
expr may be an equation. If so, fortran prints an assignment
statement, assigning the right-hand side of the equation to the left-hand side.
In particular, if the right-hand side of expr is the name of a matrix,
then fortran prints an assignment statement for each element of the
matrix.
If expr is not something recognized by fortran,
the expression is printed in grind format without complaint.
fortran does not know about lists, arrays, or functions.
fortindent controls the left margin of the printed lines.
0 is the normal margin (i.e., indented 6 spaces). Increasing
fortindent causes expressions to be printed further to the right.
When fortspaces is true, fortran fills out
each printed line with spaces to 80 columns.
fortran evaluates its arguments; quoting an argument defeats evaluation.
fortran always returns done.
See also the function f90 for printing one or more
expressions as a Fortran 90 program.
Examples:
(%i1) expr: (a + b)^12$
(%i2) fortran (expr);
(b+a)**12
(%o2) done
(%i3) fortran ('x=expr);
x = (b+a)**12
(%o3) done
(%i4) fortran ('x=expand (expr));
x = b**12+12*a*b**11+66*a**2*b**10+220*a**3*b**9+495*a**4*b**8+792
1 *a**5*b**7+924*a**6*b**6+792*a**7*b**5+495*a**8*b**4+220*a**9*b
2 **3+66*a**10*b**2+12*a**11*b+a**12
(%o4) done
(%i5) fortran ('x=7+5*%i);
x = (7,5)
(%o5) done
(%i6) fortran ('x=[1,2,3,4]);
x = [1,2,3,4]
(%o6) done
(%i7) f(x) := x^2$
(%i8) fortran (f);
f
(%o8) done
@ref{Category: Translation and compilation}
Default value: false
When fortspaces is true, fortran fills out
each printed line with spaces to 80 columns.
@ref{Category: Translation and compilation}
| [ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by dpb build user on August, 4 2016 using texi2html 1.76.