## `generate::C` -- generate C formatted string

#### Introduction

`generate::C(`e`)` generates C output for the MuPAD expression `e`.

#### Call(s)

`generate::C(e)`

#### Parameters

`e` | - | an expression, equation or list of equations

#### Returns

`generate::C` returns a `string` containing C code.

#### Related Functions

`fprint`, `print`, `generate::optimize`

#### Details

- A MuPAD expression is converted into a C expression.
- An equation is used to represent an assignment in C. The type of the assignment is assumed to be `double`.
- A list of equations may be used to represent a sequence of assignments in C.
- The output string may be printed to a file using `fprint`. Use the printing option `Unquoted` to remove quotes and to expand special characters like newlines and tabs.
- `generate::optimize` may be used to optimize the input before generating the C code.

#### Example 1

A list of equations is converted into a sequence of assignments.

    >> generate::C( [ x[1]=y[2+i]^2*(y[1]+sin(z)), x[2]=tan(x[1]^4) ] ):
       print(Unquoted,%)

                     x[1] = (y[i + 2]*y[i + 2])*(sin(z) + y[1]) ;
                     x[2] = tan(pow(x[1], 4.0)) ;

#### Example 2

The code produced by `generate::C` is not optimized:

    >> print(Unquoted,
             generate::C([x = a + b, y = (a + b)^2])):

                                 x = a + b ;
                                 y = pow(a + b, 2.0) ;

`generate::optimize` tries to reduce the number of operations:

    >> print(Unquoted,
             generate::C(
                 generate::optimize([x = a + b, y = (a + b)^2])
             )):

                                      x = a + b ;
                                      y = x*x ;

#### Changes

- no changes

Do you have questions or comments?
Copyright © SciFace Software GmbH & Co. KG 2000