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

  • Convert between two units

    A value in one unit as a value in another unit of the same kind.

    result = v × (n₁ × d₂) ÷ (d₁ × n₂)

    Unit conversion unit-table.js Every app
    Exact
  • Typed text to a unit

    What was typed, with its unit, as a value in the unit the field wants.

    3 yd typed into a feet field = convert(3, yd, ft) = 9

    Unit conversion unit-table.js Every app
    Exact
  • A value to the base unit

    A number in any unit as meters, square meters, cubic meters, radians or rise over run.

    base = v × n ÷ d (v × π × n ÷ d for degrees and gons)

    Unit conversion unit-table.js Every app
    64-bit
  • A base value to a unit

    A stored base value as a number in the unit shown.

    value = base × d ÷ n (base ÷ π × d ÷ n for degrees and gons)

    Unit conversion unit-table.js Every app
    64-bit
  • Which side of an edge

    Whether three points turn counter-clockwise, clockwise, or lie on one line.

    sign of (b − a) × (c − a)

    Surface triangulation tin.js
    • BimCraft
    • CivilCraft
    Exact
  • Is an edge Delaunay

    Whether the point across an edge lies inside the circle through the triangle on this side.

    sign of the in-circle determinant of a, b, c, d

    Surface triangulation tin.js
    • BimCraft
    • CivilCraft
    Exact
  • Triangle under a point

    The triangle a point falls in and its three barycentric weights.

    w₁ = ((y_b − y_c)(x − x_c) + (x_c − x_b)(y − y_c)) ÷ d, w₃ = 1 − w₁ − w₂

    Surface triangulation tin.js
    • BimCraft
    • CivilCraft
    64-bit
  • Elevation at a point

    The surface elevation at an easting and northing.

    z = w₁·z₁ + w₂·z₂ + w₃·z₃

    Surface triangulation tin.js
    • BimCraft
    • CivilCraft
    64-bit
  • Slope of a triangle

    Rise over run and the downhill direction of one triangle.

    n = u × v; slope = √((n_x ÷ n_z)² + (n_y ÷ n_z)²)

    Surface triangulation tin.js
    • BimCraft
    • CivilCraft
    64-bit
  • Plan and surface area

    The surface's area in plan and along the slope, with its elevation range.

    area in plan = Σ |n_z| ÷ 2; surface area = Σ |u × v| ÷ 2

    Surface triangulation tin.js
    • BimCraft
    • CivilCraft
    64-bit
  • Member stiffness matrix

    The 12 by 12 stiffness of one beam-column in its own axes.

    EA ÷ L, GJ ÷ L, 12EI ÷ L³, 6EI ÷ L², 4EI ÷ L, 2EI ÷ L

    3D frame analysis frame/frame-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Equivalent nodal loads

    A load along a member as forces and moments at its two ends.

    p = ∫ N(ξ) · w(ξ) dx, by 4-point Gauss-Legendre quadrature

    3D frame analysis frame/frame-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Banded Cholesky factorisation

    Factorises the stiffness matrix once, for every load set.

    K = L · Lᵀ; pivot s = k_jj − Σ l²; mechanism when s ≤ 1e-11 × k_jj

    3D frame analysis frame/frame-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Forward and back substitution

    Displacements for one load set from the factorised matrix.

    L · y = f, then Lᵀ · u = y

    3D frame analysis frame/frame-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Length of a segment or arc

    The true length of one straight or curved piece of a run.

    θ = 4 · atan(b); r = c ÷ (2 · sin(θ ÷ 2)); length = r × |θ|

    Takeoff lengths and areas geom.js
    • TakeoffCraft
    64-bit
  • Area under an arc

    The area between an arc and its chord.

    area = r² × (θ − sin θ) ÷ 2

    Takeoff lengths and areas geom.js
    • TakeoffCraft
    64-bit
  • Area of an outline

    The area inside a closed outline by the shoelace formula, arcs included.

    A = ½ Σ (xᵢ · yᵢ₊₁ − xᵢ₊₁ · yᵢ) + Σ arc areas

    Takeoff lengths and areas geom.js
    • TakeoffCraft
    64-bit
  • Perimeter

    The length around a closed outline.

    P = Σ segment lengths, the closing segment included

    Takeoff lengths and areas geom.js
    • TakeoffCraft
    64-bit
  • Net area with cut-outs

    Gross area, cut-outs, net area and perimeter of an area mark.

    net = gross − Σ cut-outs

    Takeoff lengths and areas geom.js
    • TakeoffCraft
    64-bit
  • Centroid

    The center of area of an outline, where its label goes.

    C_x = Σ (xᵢ + xᵢ₊₁) · fᵢ ÷ 6A, fᵢ = xᵢ · yᵢ₊₁ − xᵢ₊₁ · yᵢ

    Takeoff lengths and areas geom.js
    • TakeoffCraft
    64-bit
  • Add, subtract, multiply, divide

    The four operations on values that carry units.

    a + b and a − b need the same dimensions; a × b and a ÷ b combine them

    Calc sheets calc.js Every app
    64-bit
  • Comparisons

    Pass or fail checks such as M <= 40 kN m.

    a ≤ b is true when a ≤ b + 1e-12 × max(1, |a|, |b|)

    Calc sheets calc.js Every app
    64-bit
  • Number shown

    A result as text in the sheet.

    6 significant digits; exponent form from 1e9 up and below 1e-4

    Calc sheets calc.js Every app
    64-bit
  • Knot span

    Which span of the knot vector a parameter falls in.

    i such that U[i] ≤ u < U[i + 1], by bisection

    B-spline basis functions nurbs/basis.js
    • ModelCraft
    • PartCraft
    64-bit
  • Basis functions

    The p + 1 basis functions that are not zero at a parameter.

    N(i, p)(u) by the Cox-de Boor recurrence (A2.2)

    B-spline basis functions nurbs/basis.js
    • ModelCraft
    • PartCraft
    64-bit
  • Basis function derivatives

    The basis functions and their derivatives up to a chosen order.

    N⁽ᵏ⁾(i, p)(u) for k = 0 … d (A2.3)

    B-spline basis functions nurbs/basis.js
    • ModelCraft
    • PartCraft
    64-bit
  • Reproject points

    Every point of a file from one coordinate system to another.

    (x, y) in the source system → (x, y) in the target system, point by point

    Map coordinate reprojection reproject-batch.js
    • BimCraft
    • CivilCraft
    64-bit
  • Map origin from latitude and longitude

    Eastings and northings of a typed latitude and longitude.

    (lon, lat) → (E, N), rounded to 0.000001 of the map unit

    Map coordinate reprojection crs-georef.js
    • BimCraft
    • CivilCraft
    64-bit
  • Model to map conversion

    Where a model sits on the map: origin, rotation and scale.

    X axis = (cos a, sin a) rounded to 1e-12; scale = model unit ÷ map unit

    Map coordinate reprojection crs-georef.js
    • BimCraft
    • CivilCraft
    64-bit
  • Line and line

    The point where two lines cross.

    t = ((b₁ − a₁) × d₂) ÷ (d₁ × d₂); parallel when |d₁ × d₂| < 1e-12 × |d₁| × |d₂|

    Line, arc and circle intersections geom.js
    • CadCraft
    64-bit
  • Line and circle

    The points where a line meets a circle or arc.

    A·t² + B·t + C = 0; t = (−B ± √(B² − 4AC)) ÷ 2A

    Line, arc and circle intersections geom.js
    • CadCraft
    64-bit
  • Circle and circle

    The points where two circles or arcs meet.

    x = (d² + r₁² − r₂²) ÷ 2d; h = √(r₁² − x²)

    Line, arc and circle intersections geom.js
    • CadCraft
    64-bit
  • Is the point on the object

    Whether a computed crossing lies on the drawn part of each object.

    −tol ≤ t·L ≤ L + tol, with tol = 1e-7; arcs: the angle within 1e-7 of the sweep

    Line, arc and circle intersections geom.js
    • CadCraft
    64-bit
  • Conjugate gradient solve

    The displacement of every node under the loads.

    repeat until ‖r‖ ÷ ‖b‖ < 1e-8

    Stress analysis fea.js
    • PartCraft
    64-bit
  • Von Mises stress

    One equivalent stress from the six stress components.

    σᵥ = √(½[(σ_x − σ_y)² + (σ_y − σ_z)² + (σ_z − σ_x)²] + 3(τ_xy² + τ_yz² + τ_zx²))

    Stress analysis fea.js
    • PartCraft
    64-bit
  • Stress and displacement at each node, and their maximum

    The values the plot colors by, and the maximum the report states.

    σ at a node = mean of its corners; |u| = √(u_x² + u_y² + u_z²); maximum over the nodes

    Stress analysis fea.js
    • PartCraft
    32-bit in part
  • Volume, surface area and bounding box

    The measured properties of the finished body.

    volume, area, genus and bounding box, asked of the kernel

    Solid modeling kernel.js
    • PartCraft
    64-bit
  • Vertex positions of the body

    The mesh that faces, edges and the display are built from.

    positions = 32-bit copy of the kernel's vertices

    Solid modeling kernel.js
    • PartCraft
    32-bit in part
  • Sabine constant

    The constant both reverberation formulas multiply the volume by.

    C = 0.161 s/m

    Room reverberation time acoustics.js
    • BimCraft
    64-bit
  • Sound absorbed by the air

    The attenuation of a pure tone in air, in dB per meter, at the room's temperature, humidity and pressure.

    α = 8.686 f² [1.84e-11 (p_r ÷ p) √(T ÷ T₀) + (T ÷ T₀)^−2.5 (0.01275 e^(−2239.1 ÷ T) ÷ (f_rO + f² ÷ f_rO) + 0.1068 e^(−3352 ÷ T) ÷ (f_rN + f² ÷ f_rN))]

    Room reverberation time acoustics.js
    • BimCraft
    64-bit
  • Air absorption per meter

    Turns the dB figure into the energy absorption coefficient the formulas use.

    m = α ÷ 4.343

    Room reverberation time acoustics.js
    • BimCraft
    64-bit
  • Reverberation time per band

    The Sabine and Eyring times of a room in each of six octave bands, and the mid-frequency mean.

    A = Σ Sᵢαᵢ + extra; ᾱ = min(0.999, A ÷ S); Sabine = C V ÷ (A + 4mV); Eyring = C V ÷ (−S ln(1 − ᾱ) + 4mV)

    Room reverberation time acoustics.js
    • BimCraft
    64-bit
  • Reverberation over the target

    The finding raised when a room's mid-frequency time is over the person's target, with the absorption that would meet it.

    T = round(T_mid × 100) ÷ 100; need = round(max(0, V C ÷ target − (A₅₀₀ + A₁₀₀₀) ÷ 2))

    Room reverberation time acoustics.js
    • BimCraft
    64-bit
  • Distance from a point to a room outline

    How far an opening's middle is from the room's outline, to decide which room the opening belongs to.

    d = min over edges of |P − (A + t (B − A))|, t clamped to 0…1

    Room reverberation time acoustics-model.js
    • BimCraft
    64-bit
  • Room perimeter

    The length of the room's outline, used for the wall area when the walls' finishes are not read from the model.

    P = Σ |pᵢ₊₁ − pᵢ|

    Room reverberation time acoustics-model.js
    • BimCraft
    64-bit
  • Is a point inside a room

    Decides whether a ceiling, a floor or a piece of furniture lies in a room.

    Room reverberation time acoustics-model.js
    • BimCraft
    64-bit
  • Room height and opening areas

    The height the room is given and the area of the doors and windows in its walls.

    H = height ÷ 1000; opening area = (width ÷ 1000) × (height ÷ 1000)

    Room reverberation time acoustics-model.js
    • BimCraft
    64-bit
  • Wall area per finish

    The area of wall each finish covers in a room, less its doors and windows.

    wall area = Σ edge length × H; net = max(0, gross − glass − doors); each finish × net ÷ gross

    Room reverberation time acoustics-model.js
    • BimCraft
    64-bit
  • Room volume and the figures reported

    The volume passed to the formulas and the area, height and volume listed for each room.

    V = floor area × H; aspect = longest ÷ max(shortest, 0.1)

    Room reverberation time acoustics-model.js
    • BimCraft
    64-bit
  • Fast Fourier transform

    The transform behind the band filters and the convolution.

    X_k = Σ x_n e^(∓2πi kn ÷ N), N a power of two

    Room impulse response and listening acoustics-ir.js
    • BimCraft
    64-bit

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.