Skip to content

Low-Level Evaluation #476

Answered by mkeeter
panic-at-the-disko asked this question in Q&A
Discussion options

You must be logged in to vote

Evaluation works by converting a math tree into a "tape", which is a series of individual math operations with input and output locations. For example, cos(X + 1) could become

$1 = X
$2 = 1.0
$3 = $1 + $2
$4 = cos($3)

This tape is then evaluated by one or more interpreters, which are specialized for a particular kind of evaluation. For example, the ArrayEvaluator evaluates an array of single points; the DerivArrayEvaluator performs both value and partial derivatives.

Here's an actual example of the evaluation loop.

This means evaluation can take place at any float x, y, z position. We're eventually limited by floating-point resolution, and the exact limits will depend on the structure of…

Replies: 1 comment 3 replies

Comment options

You must be logged in to vote
3 replies
@panic-at-the-disko
Comment options

@mkeeter
Comment options

@panic-at-the-disko
Comment options

Answer selected by panic-at-the-disko
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants