# {{ crate_name }}

This Rust crate was generated by `gradgen`.

Backend mode: `{{ backend_mode }}`
Scalar type: `{{ scalar_type }}`
{% if math_library %}
Math library namespace: `{{ math_library }}`
{% endif %}

## Build

```bash
cargo build
```

## Generated Functions

{% for codegen in codegens -%}
- `{{ codegen.function_name }}`: workspace `{{ codegen.workspace_size }}`, inputs `{{ codegen.input_sizes }}`, outputs `{{ codegen.output_sizes }}`
{% endfor %}

The generated ABI uses input slices, output slices, and a mutable workspace slice.
Each generated function also includes metadata helpers for workspace, input, and output sizes unless disabled in the backend configuration.
The crate root also contains a `metadata.json` file with the same metadata for
all generated functions in a machine-readable form.
{% if backend_mode == "no_std" %}
The generated crate is `no_std` and uses `{{ math_library }}` for transcendental math functions.
{% endif %}
