What is the difference among these traversal orders in practical applications? For this example, I think all the methods produce the same result.
adilets
Algorithmically all of the traversals should produce the same result. My guess is that different traversals might have minor performance differences based on the compiler generated assembly.
Also different traversals will have different memory access patterns leading to another performance optimization point.
anonymous
In the efficient incremental update, why do we add dYi / dXi, which is the coordinate difference of two vertices of the triangle, to each incremental update? Isn't that too large, compare to the scale of x->x+1?
And what does the left side of equation's "d" mean?
keenan
@Leslie Yeah, @adilets has it right: using something like a space-filling curve can result in more coherent memory access, which means things have to get swapped in and out of cache less frequency. Hence, higher performance.
What is the difference among these traversal orders in practical applications? For this example, I think all the methods produce the same result.
Algorithmically all of the traversals should produce the same result. My guess is that different traversals might have minor performance differences based on the compiler generated assembly.
Also different traversals will have different memory access patterns leading to another performance optimization point.
In the efficient incremental update, why do we add dYi / dXi, which is the coordinate difference of two vertices of the triangle, to each incremental update? Isn't that too large, compare to the scale of x->x+1?
And what does the left side of equation's "d" mean?
@Leslie Yeah, @adilets has it right: using something like a space-filling curve can result in more coherent memory access, which means things have to get swapped in and out of cache less frequency. Hence, higher performance.