Resources Numerical accuracy

Calculations

Every calculation under our calculation policies: what it works out, its formula and the precision it runs at. Open one to see its code as it is in the released app.

  • 6,917 calculations in 1,248 source files
  • 143 exact
  • 6,286 in 64-bit
  • 335 with a 32-bit step
  • Last reviewed

Calculations

  • Vertex positions and normals written

    Fills the position and normal buffers of an object.

    n = (b − a) × (c − a) ÷ |…|

    3D check view exported as glTF glb.js
    • TakeoffCraft
    32-bit in part
  • Bounds of each position buffer

    The minimum and maximum of a position buffer, written beside it.

    3D check view exported as glTF glb.js
    • TakeoffCraft
    32-bit in part
  • Quantities carried with each object

    Attaches each object's mark, item, kind and measured values to its node.

    3D check view exported as glTF glb.js
    • TakeoffCraft
    64-bit
  • Arcs as Bézier curves for drawing

    Turns a run or an outline into move, line and curve commands.

    k = 4 ÷ 3 × tan(φ ÷ 4); c₁ = p₀ + k·r·tangent₀; c₂ = p₃ − k·r·tangent₁

    Marks and sheets written to PDF geom.js
    • TakeoffCraft
    64-bit
  • A mark's path written to the page

    Writes a mark's commands as PDF path operators.

    Marks and sheets written to PDF pdfmarks.js
    • TakeoffCraft
    64-bit
  • Quantities printed in the legend

    The quantity of each item on that sheet, as text in the page's legend.

    Marks and sheets written to PDF pdfmarks.js
    • TakeoffCraft
    64-bit
  • A drawing's lines written as vector paths

    Writes each batch of the drawing's lines to the PDF page under the sheet's matrix.

    width = max(0.25, lw × 72 ÷ 25.4 [× 0.5]) ÷ scale

    Marks and sheets written to PDF cadpdf.js
    • TakeoffCraft
    64-bit
  • Unit conversions to the factor table's basis

    How many meters, square meters, cubic meters or items one of each takeoff unit is.

    CY → m³: × 0.764554858 (exact: 0.9144³ = 0.764554857984)

    Embodied carbon from quantities carbon.js
    • TakeoffCraft
    64-bit
  • Quantity in the factor's basis

    Converts a line's quantity with waste into the unit its carbon factor is given in.

    qty = qtyW × factor; kg basis: qtyW × factor × density

    Embodied carbon from quantities carbon.js
    • TakeoffCraft
    64-bit
  • Kilograms per line and the total

    The carbon of each line for the chosen modules, and their sum.

    kg = qty × (A1–A3 + A4 + A5); total = Σ kg

    Embodied carbon from quantities carbon.js
    • TakeoffCraft
    64-bit
  • Carbon lines written to a file

    Writes each line's quantity and kilograms to a CSV file.

    written = round(v × 100) ÷ 100

    Embodied carbon from quantities carbon.js
    • TakeoffCraft
    64-bit
  • Unit conversions for the price table

    The table unit and factor for each takeoff unit.

    Rates exported as a price table carbon.js
    • TakeoffCraft
    Exact
  • Rates converted and rounded

    One table row per priced item, with its material rate, labor rate and waste.

    rate = round(rate4 ÷ 10000 × factor × 10⁶) ÷ 10⁶

    Rates exported as a price table carbon.js
    • TakeoffCraft
    64-bit
  • Quantity rounded for the package

    Rounds a quantity to 4 decimals before it is sent.

    qty = round(v × 10000) ÷ 10000

    Quantities sent in a bid package bidsend.js
    • TakeoffCraft
    64-bit
  • Scope lines of a package

    Builds the lines of a bid package: item, quantity, unit and sheets.

    Quantities sent in a bid package bidsend.js
    • TakeoffCraft
    64-bit
  • Vertex buffers for the 3D view

    Copies an object's triangles into a buffer for the graphics card.

    Drawing the 3D check view and CAD sheets on screen view3d.js
    • TakeoffCraft
    32-bit, display only
  • Canvas paths for a CAD sheet

    Builds the canvas paths of one batch of lines and fills.

    Drawing the 3D check view and CAD sheets on screen cadset.js
    • TakeoffCraft
    32-bit, display only

A calculation is added only after its source was read. Each statement can be checked in the code shown on its policy's page; the app repositories are public. When a release changes a calculation, its page says so until it has been read again.