UNPKG

@tokens-studio/graph-engine

Version:

An execution engine to handle Token Studios generators and resolvers

51 lines 1.74 kB
import { Node } from '../../programmatic/node.js'; import { NumberSchema } from '../../schemas/index.js'; import { arrayOf } from '../../schemas/utils.js'; import { setToPrecision } from '../../utils/precision.js'; export default class NodeDefinition extends Node { static title = 'Exponential Decay'; static type = 'studio.tokens.series.exponentialDecay'; static description = 'Generates a sequence using exponential decay formula: P*e^(-kx)'; constructor(props) { super(props); this.addInput('initialValue', { type: { ...NumberSchema, default: 100, description: 'Initial value (P)' } }); this.addInput('length', { type: { ...NumberSchema, default: 5, minimum: 1, description: 'Number of values to generate' } }); this.addInput('decayRate', { type: { ...NumberSchema, default: 0.5, minimum: 0, description: 'Decay rate constant (k)' } }); this.addInput('precision', { type: { ...NumberSchema, default: 2, minimum: 0 } }); this.addOutput('values', { type: arrayOf(NumberSchema) }); } execute() { const { initialValue, length, decayRate, precision } = this.getAllInputs(); const values = Array.from({ length }, (_, i) => setToPrecision(initialValue * Math.exp(-decayRate * i), precision)); this.outputs.values.set(values); } } //# sourceMappingURL=exponentialDecay.js.map