# core/converters/math.converter.ts

> 8 lines of code and 5 definitions.

Tree: GovLab Patterns
Language: typescript
Layer: processing
Canonical: https://banes-lab.com/anatomy/patterns#file-patterns-core-converters-math-converter-ts
Source text: https://banes-lab.com/source/patterns/core/converters/math.converter.ts.txt

Listed in [core/converters](https://banes-lab.com/api/source/patterns/core/converters.md), after [core/converters/folder.converter.ts](https://banes-lab.com/source/patterns/core/converters/folder.converter.ts.md) and before [core/converters/page.converter.ts](https://banes-lab.com/source/patterns/core/converters/page.converter.ts.md).

## Definitions

- `gaussian` (lexical_declaration, line 5, exported)
- `TWO` (lexical_declaration, line 3)
- `u1` (lexical_declaration, line 6, exported)
- `u2` (lexical_declaration, line 7, exported)
- `z` (lexical_declaration, line 8, exported)

## Contained in

- [core/converters](https://banes-lab.com/anatomy/patterns/folder-patterns-core-converters.md)

## Used by

- [core/aggregators/representation.vector.aggregator.ts](https://banes-lab.com/source/patterns/core/aggregators/representation.vector.aggregator.ts.md)

## Linked from

- [core/aggregators](https://banes-lab.com/anatomy/patterns/folder-patterns-core-aggregators.md)

## Source

```typescript
import type { Rng } from "#types/seed.types";

const TWO = 2;

export const gaussian = function gaussian(rng: Rng, mean = 0, stddev = 1): number {
    const u1 = 1 - rng.next();
    const u2 = rng.next();
    const z = Math.sqrt(-TWO * Math.log(u1)) * Math.cos(TWO * Math.PI * u2);
    return mean + z * stddev;
};
```
