Function reference
Equarith 1.0.3 searches over a typed catalog of numerical operations. Every operation has a default complexity cost and a numerical domain. A candidate that produces a non-finite value on a required row is rejected unless the selected operation explicitly defines protected behavior.
The identifiers below are also the canonical names used in parsed formulas. Costs are the v1.0.3 defaults; you can edit them before search.
Recommended default selection
Select Defaults in the function catalog to apply this conservative recommended set:
add,subtract, andmultiply;safe_div;squareandcube;sinandcos;safe_logandsafe_sqrt; andabs.
When capabilities are first loaded, the current selection can include every non-history function. Defaults deliberately narrows it to the list above. Keep functions outside this set only when they make sense for the variables, units, and expected relationship.
Arithmetic
add(a,b), cost 1: addition; operands and result must be finite.subtract(a,b), cost 1: subtraction.multiply(a,b), cost 1: multiplication; overflow rejects the candidate.divide(a,b), cost 2: strict division;|b|must exceed1e-12.safe_div(a,b), cost 3: returnsa / bnormally and returnsawhen|b| <= 1e-12.aq(a,b), cost 4: analytic quotienta / sqrt(1 + b²), without a finite-input singularity.
Protected division avoids undefined values but changes the mathematical meaning near zero. Inspect whether that branch is physically defensible.
Powers
square(x), cost 2:x².cube(x), cost 3:x³.inv(x), cost 2:1/x; the input must be non-zero.pow(x,n), cost 4: real-valued power. Search-generated exponents are non-zero integers constrained to[-3, 3]; the result must be a finite real number.
Trigonometric functions
sin(x)andcos(x), cost 2 each.tan(x), cost 3; candidates producing a non-finite result are rejected.asin(x)andacos(x), cost 3 each;xmust be in[-1, 1].atan(x), cost 3.atan2(y,x), cost 3: quadrant-aware angle.sinc(x), cost 4:sin(x)/xwithsinc(0) = 1.
Arguments use radians. A trigonometric fit can extrapolate periodically far beyond any physical justification.
Hyperbolic functions
sinh(x),cosh(x), andtanh(x), cost 3 each.asinh(x), cost 4.acosh(x), cost 4;x >= 1.atanh(x), cost 4;-1 < x < 1.
Overflow or a domain violation rejects the candidate.
Exponential, logarithmic, and root functions
exp(x), cost 3; overflow rejects the candidate.expm1(x), cost 3: accurateexp(x) - 1near zero.safe_exp(x), cost 4: evaluates the exponential after clampingxto[-60, 60].log(x), cost 3: natural logarithm forx > 0.log2(x)andlog10(x), cost 4 each, forx > 0.log1p(x), cost 3: accuratelog(1 + x)forx > -1.safe_log(x), cost 4:log(abs(x) + 1e-12).sqrt(x), cost 3, forx >= 0.cbrt(x), cost 3: real cube root.safe_sqrt(x), cost 4:sqrt(abs(x)).
Safe variants produce a finite value over a wider range, but absolute values, clamps, and epsilon terms alter semantics. Prefer strict operations when the domain constraint itself is meaningful and supported by the data.
Shape and aggregation functions
abs(x), cost 2.relu(x), cost 2:max(0,x).sigmoid(x), cost 4: stable logistic transition in[0,1].softplus(x), cost 4: stablelog(1 + exp(x)).gaussian(x), cost 4:exp(-x²).ceil(x)andfloor(x), cost 2 each.round(x), cost 3: halfway cases round away from zero.sign(x), cost 2.min(a,b)andmax(a,b), cost 2 each.hypot(a,b), cost 3: overflow-resistantsqrt(a² + b²).clamp(x,lower,upper), cost 3; the lower bound must not exceed the upper bound.
Discontinuous operations such as rounding, sign, min, max, and clamp can describe regimes, but they can also create unstable boundaries.
Special functions
fmod(a,b), cost 4: floating-point remainder;bmust be non-zero.tgamma(x), cost 4: gamma function; poles and overflow are invalid.lgamma(x), cost 4: logarithm of the absolute gamma value; poles are invalid.erf(x), cost 4: error function.erfc(x), cost 4: complementary error function with stable Gaussian-tail behavior.
Logical and conditional functions
These operations return numerical values and can build piecewise formulas:
smaller(a,b)andgreater(a,b), cost 4: return 0 or 1.equal(a,b)anddifferent(a,b), cost 4: use exact floating-point equality and return 0 or 1.logical_or(a,b)andlogical_and(a,b), cost 4: zero is false and non-zero is true.if_else(condition,when_true,when_false), cost 5: selects the second operand when the condition is non-zero, otherwise the third.
Exact equality is rarely robust for measured continuous values. A threshold comparison is usually more meaningful.
History functions
History functions are disabled by default and use original source-row chronology, even when training rows are randomly split or progressively sampled. rolling_std and rolling_slope have cost 5; every other history function below has cost 4.
delay(expr,N): the expression valueNoriginal rows before the current row.moving_average(expr,N): mean over the precedingNrows, excluding the current row.difference(expr,N): current value minus its valueNrows earlier.rolling_std(expr,N): population standard deviation over the precedingNrows.rolling_min(expr,N)androlling_max(expr,N): extreme over the precedingNrows.rolling_slope(expr,N): least-squares slope over the precedingNrows;Nmust be at least 2.decay(expr,r): exponentially weighted sum of the current and preceding values using powers ofr, truncated at Maximum history size.ema(expr,r): normalized exponentially weighted average of the current and preceding values.
Window lengths are integers from 1 up to Maximum history size, which can be configured from 1 to 1,000. Decay rates satisfy 0 < r < 1.
The initial warm-up rows and any row whose required history is invalid are excluded before the train/test split. Increasing Maximum history size can therefore reduce the eligible dataset substantially.
Allow target variable in history functions enables autoregressive formulas. Such a formula can be valid for one-step prediction when previous observed targets exist, but invalid for a deployment that does not have them.
History expressions are supported for dataset evaluation, projects, and compatible checkpoints. They are not available for unordered custom prediction points and cannot be exported as standalone executable source in v1.0.3. Presentation exports such as plain formula text and LaTeX remain available.
Complexity costs
Costs express an interpretability preference, not runtime cost alone. The complexity of each formula contributes directly to Pareto construction. Raising the cost of a function makes formulas using it compete at a higher complexity; lowering it makes that operation easier to retain.
Use one coherent cost scheme throughout an experiment. Changing costs can reorder the Pareto front and makes an existing checkpoint incompatible.
For the surrounding controls, read Configuring a search. For generated-code restrictions, read Exporting data and formulas.