Traction Implementation

a machine-friendly traction structure

---
1. Concepts

A number can generally be described as zero or the signed ratio of two whole numbers greater than 0.

0 = Z()
1.2 = 6/5

A location in 2D space can be described by an x and y coordinate:

x + y*w = [x,y]

And a location in 3D space by x, y, z, coordinates:

x + y*w + z*w_{2} = [x,y,z]

A rotation may be applied to any coordinate:

w^{x + y*w} = Z([x,y])
Canonical Units

Normalizing to these canonical units ensures arithmetic behaves as expected.

c*0^{p} [c,p]
1*0^{0}=1 [1,0]
-1*0^{0}=-1 [-1,0]
1*0^{1}=0 [0,1]
1*0^{-1}=w [0,-1]
---
2. Composite Traction

A traction may be recursive.

(a*0^{b})*0^{c*0^{d}}=[[a,b],[c,d]]

A traction may contain operations. These tractions are considered operational.

(a<>b)*0^{c<>d}=[a<>b,c<>d]

Tractions are considered composite if they have the capacity to be both recursive and operational.

---
3. Operation Rules

To define the operational rules, we must first define a few helper functions. These functions enable our operations to handle edge cases involving zero-rollover.

b = 0 =-> r(b) = 1
b = 0 =-> v(b) = 1
b != 0 =-> r(b) = b
b != 0 =-> v(b) = 0
a<>b [c,d]
[a_{1},a_{2}]+[b_{1},b_{2}] [a_{1}+b_{1},(a_{2}+b_{2})/2]
[a_{1},a_{2}]*[b_{1},b_{2}] [a_{1}*b_{1},a_{2}+b_{2}]
[a_{1},a_{2}]^[b_{1},b_{2}] [a_{1}^b_{1}, b_{2}*a_{2}]
-[a_{1},a_{2}] [-a_{1},1/r(a_{2})-v(a_{2})]
1/[a_{1},a_{2}] [1/r(a_{1}),-a_{2}-v(a_{1})]
|[a_{1},a_{2}]| ( a_{1}^2+a_{2}^2 )  
[[a_{1},a_{2}],[b_{1},b_{2}]] [a_{1}*b_{2}, a_{2}+b_{1}]

So, the coefficient behaves additively, and the phase behaves exponentially over multiplication but logarithmically over addition.

From these operation rules, subtraction and division may be derived.

Special Rules for Arithmetic

Special rules apply to scalar arithmetic when evaluating these operations. Some of these rules are redundant, but included for specificity.

0/0=1
0/1=[1,1]
0*x=[x,1]
0^x=[1,x]
a*0^b=[a,b]
1/0=[1,-1]
0^0=1
0^n=[1,n]
0^{-n}=[1,-n]
---