Numlex Documentation
Using Numlex
Report issue

Natural calculations

Arithmetic, percentages, dates, sections and totals — plain lines that are checked live.

Numlex reads ordinary notebook text. There is no formula syntax and no cell references — each line is evaluated strictly, and anything it cannot parse stays quiet instead of guessing.

Arithmetic

Standard operators with normal precedence:

30 + 567 × 2        1,164
(30 + 567) × 2      1,194
100 / 8             12.5
2 ^ 10              1,024

Percentages

Percentage grammar reads like a note:

15% of 4572         685.8
10% of 240          24
240 + 10%           264
hotel = 1240        1,240
hotel + 10%         1,364

Money works in the same grammar: $240 + 10% tip$264.00.

Dates

Plain month names, no format codes:

Jan 10 + 12 days    Jan 22
June 12 + 45 days

Sections and totals

# heading starts a section; a standalone total line sums the unitless answers above it (since the sheet start or the previous total) and starts a fresh section below:

# Household
Groceries           86.40
Power bill          42.10
total               128.50

The total behaves like any other answer: you can copy it, re-round it per answer, and reference it with a token. The sheet’s Total footer can be hidden from the Numbers settings tab.

Built-in functions

The same pure function registry is available in every scalar position. Names are case-insensitive and arguments are full expressions (nesting included); a function-shaped line is strict — an unknown name, a bad arity or a domain failure produces a precise error, never a guess.

  • sqrt, abs, round(x) / round(x, d) — ties round away from zero
  • min, max, sum, average — one or more arguments
  • pow(b, e) — the same finite contract as ^
  • ln(x), log(x) (base 10), log(x, b), log10(x)
  • sin, cos, tan (radians) and asin, acos, atan
  • radians(d) and degrees(r) — explicit unit helpers
sqrt(144)           12
sum(1, 2, 3)        6
round(3.14159, 2)   3.14
sin(radians(30))    0.5

Inside argument lists a comma separates arguments; a comma directly before exactly three digits is still a thousands separator — sum(1, 234) is two arguments while sum(1,234) is one grouped literal.

Found an issue in these docs? Report it on GitHub .