# excellerate v0.4.0 - Table of Contents

A high-performance, extensible expression evaluation engine for Elixir.

## Pages

- [ExCellerate](readme.md)

## Modules

- [ExCellerate](ExCellerate.md): ExCellerate is a high-performance expression evaluation engine for Elixir.
- [ExCellerate.Cache](ExCellerate.Cache.md): ETS-backed LRU cache for compiled expression functions.
- [ExCellerate.Compilation.Interpreted](ExCellerate.Compilation.Interpreted.md): Compilation strategy that evaluates expressions via an interpreted
`Code.eval_quoted/3` closure.
- [ExCellerate.Compilation.NativeCompiled](ExCellerate.Compilation.NativeCompiled.md): Compilation strategy that compiles each expression into a real, loaded BEAM
module (via `ExCellerate.NativeCompiler`) and evaluates it as compiled code.
Substantially faster on the warm path with far lower per-call allocation than
the interpreter. Opt in with `config :excellerate, compilation: __MODULE__`
(the default strategy is `ExCellerate.Compilation.Interpreted`).
- [ExCellerate.Compilation.Strategy](ExCellerate.Compilation.Strategy.md): Behaviour for turning a compiled IR (Elixir AST) into a callable evaluation
function — i.e. *how* an expression is executed.
- [ExCellerate.Function](ExCellerate.Function.md): Defines a behaviour for implementing custom ExCellerate functions.
- [ExCellerate.Functions.DateTime.Date](ExCellerate.Functions.DateTime.Date.md): Creates a `Date` from year, month, and day integers.
- [ExCellerate.Functions.DateTime.DateTime](ExCellerate.Functions.DateTime.DateTime.md): Creates a `NaiveDateTime` from year, month, day, and optional hour,
minute, and second integers.
- [ExCellerate.Functions.DateTime.Dateadd](ExCellerate.Functions.DateTime.Dateadd.md): Shifts a date or datetime by the specified amount and unit.
- [ExCellerate.Functions.DateTime.Datedif](ExCellerate.Functions.DateTime.Datedif.md): Calculates the signed difference between two dates in the specified unit.
- [ExCellerate.Functions.DateTime.Day](ExCellerate.Functions.DateTime.Day.md): Extracts the day of the month (1-31) from a date or datetime.
- [ExCellerate.Functions.DateTime.Hour](ExCellerate.Functions.DateTime.Hour.md): Extracts the hour (0-23) from a datetime.
- [ExCellerate.Functions.DateTime.Minute](ExCellerate.Functions.DateTime.Minute.md): Extracts the minute (0-59) from a datetime.
- [ExCellerate.Functions.DateTime.Month](ExCellerate.Functions.DateTime.Month.md): Extracts the month (1-12) from a date or datetime.
- [ExCellerate.Functions.DateTime.Now](ExCellerate.Functions.DateTime.Now.md): Returns the current date and time as a `NaiveDateTime`.
- [ExCellerate.Functions.DateTime.Second](ExCellerate.Functions.DateTime.Second.md): Extracts the second (0-59) from a datetime.
- [ExCellerate.Functions.DateTime.Today](ExCellerate.Functions.DateTime.Today.md): Returns the current date as a `Date`.
- [ExCellerate.Functions.DateTime.Weekday](ExCellerate.Functions.DateTime.Weekday.md): Returns the day of the week as an integer (ISO 8601: Monday = 1,
Sunday = 7).
- [ExCellerate.Functions.DateTime.Year](ExCellerate.Functions.DateTime.Year.md): Extracts the year from a date or datetime.
- [ExCellerate.Functions.General.And](ExCellerate.Functions.General.And.md): Returns `true` if all arguments are truthy, `false` otherwise.
- [ExCellerate.Functions.General.Coalesce](ExCellerate.Functions.General.Coalesce.md): Returns the first non-null value from the given arguments.
- [ExCellerate.Functions.General.Concat](ExCellerate.Functions.General.Concat.md): Concatenates all arguments into a single string.
- [ExCellerate.Functions.General.Contains](ExCellerate.Functions.General.Contains.md): Returns `true` if a string contains the given substring, `false`
otherwise.
- [ExCellerate.Functions.General.Filter](ExCellerate.Functions.General.Filter.md): Filters a list using a parallel list of booleans.
- [ExCellerate.Functions.General.Find](ExCellerate.Functions.General.Find.md): Returns the 0-based position of the first occurrence of a search string
within text, or `-1` if not found.
- [ExCellerate.Functions.General.If](ExCellerate.Functions.General.If.md): Returns one value if a condition is true and another if it is false.
- [ExCellerate.Functions.General.IfNull](ExCellerate.Functions.General.IfNull.md): Returns the value if it is not null, otherwise returns the default.
- [ExCellerate.Functions.General.Ifs](ExCellerate.Functions.General.Ifs.md): Evaluates a series of condition/value pairs and returns the value for
the first truthy condition.
- [ExCellerate.Functions.General.Index](ExCellerate.Functions.General.Index.md): Returns a value from a list or 2D array by position.
- [ExCellerate.Functions.General.IsBlank](ExCellerate.Functions.General.IsBlank.md): Returns `true` if a value is null, an empty string, or a string
containing only whitespace.
- [ExCellerate.Functions.General.IsNull](ExCellerate.Functions.General.IsNull.md): Returns `true` if a value is null, `false` otherwise.
- [ExCellerate.Functions.General.Left](ExCellerate.Functions.General.Left.md): Returns the first *n* characters from a string.
- [ExCellerate.Functions.General.Len](ExCellerate.Functions.General.Len.md): Returns the length of a string or list.
- [ExCellerate.Functions.General.Lookup](ExCellerate.Functions.General.Lookup.md): Retrieves a value from a map by key or from a list by index.
- [ExCellerate.Functions.General.Lower](ExCellerate.Functions.General.Lower.md): Converts a string to lowercase.
- [ExCellerate.Functions.General.Match](ExCellerate.Functions.General.Match.md): Searches for a value in a list and returns its 0-based position.
- [ExCellerate.Functions.General.Or](ExCellerate.Functions.General.Or.md): Returns `true` if any argument is truthy, `false` otherwise.
- [ExCellerate.Functions.General.Replace](ExCellerate.Functions.General.Replace.md): Replaces all occurrences of a substring with a replacement string.
- [ExCellerate.Functions.General.Right](ExCellerate.Functions.General.Right.md): Returns the last *n* characters from a string.
- [ExCellerate.Functions.General.Slice](ExCellerate.Functions.General.Slice.md): Extracts a contiguous section of a list given a start index and optional
length.
- [ExCellerate.Functions.General.Slug](ExCellerate.Functions.General.Slug.md): Converts a string to a slug by downcasing, replacing spaces and slashes
with hyphens, and stripping other non-alphanumeric characters.
- [ExCellerate.Functions.General.Sort](ExCellerate.Functions.General.Sort.md): Sorts values in ascending order.
- [ExCellerate.Functions.General.Substring](ExCellerate.Functions.General.Substring.md): Extracts a portion of a string starting at a 0-based position.
- [ExCellerate.Functions.General.Switch](ExCellerate.Functions.General.Switch.md): Matches an expression against a series of case/value pairs and returns
the value for the first match.
- [ExCellerate.Functions.General.Table](ExCellerate.Functions.General.Table.md): Builds a list of maps (rows) from column name/list pairs.
- [ExCellerate.Functions.General.Take](ExCellerate.Functions.General.Take.md): Extracts rows, columns, or both from a list or 2D array.
- [ExCellerate.Functions.General.TextJoin](ExCellerate.Functions.General.TextJoin.md): Joins values into a single string using a delimiter.
- [ExCellerate.Functions.General.Trim](ExCellerate.Functions.General.Trim.md): Removes leading and trailing whitespace from a string.
- [ExCellerate.Functions.General.Underscore](ExCellerate.Functions.General.Underscore.md): Converts a string to underscore case by downcasing, replacing spaces and
slashes with underscores, and stripping other non-alphanumeric characters.
- [ExCellerate.Functions.General.Unique](ExCellerate.Functions.General.Unique.md): Returns the unique values from a list, preserving the order of first
occurrence.
- [ExCellerate.Functions.General.Upper](ExCellerate.Functions.General.Upper.md): Converts a string to uppercase.
- [ExCellerate.Functions.Guards](ExCellerate.Functions.Guards.md): Argument validation helpers for `ExCellerate.Function` implementations.
- [ExCellerate.Functions.Math.Abs](ExCellerate.Functions.Math.Abs.md): Returns the absolute value of a number.
- [ExCellerate.Functions.Math.Avg](ExCellerate.Functions.Math.Avg.md): Returns the arithmetic mean (average) of the given values.
- [ExCellerate.Functions.Math.Ceil](ExCellerate.Functions.Math.Ceil.md): Rounds a number up to the nearest integer.
- [ExCellerate.Functions.Math.Exp](ExCellerate.Functions.Math.Exp.md): Returns *e* raised to the given power.
- [ExCellerate.Functions.Math.Floor](ExCellerate.Functions.Math.Floor.md): Rounds a number down to the nearest integer.
- [ExCellerate.Functions.Math.Ln](ExCellerate.Functions.Math.Ln.md): Returns the natural logarithm (base *e*) of a number.
- [ExCellerate.Functions.Math.Log](ExCellerate.Functions.Math.Log.md): Returns the logarithm of a value in the specified base.
- [ExCellerate.Functions.Math.Log10](ExCellerate.Functions.Math.Log10.md): Returns the base-10 logarithm of a number.
- [ExCellerate.Functions.Math.Max](ExCellerate.Functions.Math.Max.md): Returns the largest of the given values.
- [ExCellerate.Functions.Math.Min](ExCellerate.Functions.Math.Min.md): Returns the smallest of the given values.
- [ExCellerate.Functions.Math.Round](ExCellerate.Functions.Math.Round.md): Rounds a number to the nearest integer, or to a specified number of
decimal places.
- [ExCellerate.Functions.Math.Sign](ExCellerate.Functions.Math.Sign.md): Returns the sign of a number: `-1` for negative, `0` for zero, or `1`
for positive.
- [ExCellerate.Functions.Math.Sqrt](ExCellerate.Functions.Math.Sqrt.md): Returns the square root of a non-negative number.
- [ExCellerate.Functions.Math.Sum](ExCellerate.Functions.Math.Sum.md): Returns the sum of the given values.
- [ExCellerate.Functions.Math.Trunc](ExCellerate.Functions.Math.Trunc.md): Truncates a number toward zero, removing any fractional part.
- [ExCellerate.Registry](ExCellerate.Registry.md): Provides functionality for creating custom function registries.

- Exceptions
  - [ExCellerate.Error](ExCellerate.Error.md): Represents an error in the ExCellerate system.

