Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Represent a quaternion object
| ResourceFunction["Quaternion"][a,b,c,d] returns the quaternion number a+bⅈ+cⅉ+d𝕜. | 
Get the quaternion 1+2ⅈ+3ⅉ+4𝕜:
| In[1]:= | ![ResourceFunction["Quaternion"][1, 2, 3, 4]](https://www.wolframcloud.com/obj/resourcesystem/images/eba/eba16af1-b87f-4269-ac6a-f01b21a25da7/18cba2df09b1c62c.png)  | 
| Out[1]= |   | 
Add two quaternions:
| In[2]:= | ![ResourceFunction["Quaternion"][1, 2, 3, 4] + ResourceFunction["Quaternion"][2, 3, 4, 5]](https://www.wolframcloud.com/obj/resourcesystem/images/eba/eba16af1-b87f-4269-ac6a-f01b21a25da7/7d139dacefd7126b.png)  | 
| Out[2]= |   | 
Use NonCommutativeMultiply (**) to multiply quaternions:
| In[3]:= | ![ResourceFunction["Quaternion"][2, 0, -6, 3] ** ResourceFunction["Quaternion"][1, 3, -2, 2]](https://www.wolframcloud.com/obj/resourcesystem/images/eba/eba16af1-b87f-4269-ac6a-f01b21a25da7/465e7570802f7e40.png)  | 
| Out[3]= |   | 
This multiplication is noncommutative:
| In[4]:= | ![ResourceFunction["Quaternion"][1, 3, -2, 2] ** ResourceFunction["Quaternion"][2, 0, -6, 3]](https://www.wolframcloud.com/obj/resourcesystem/images/eba/eba16af1-b87f-4269-ac6a-f01b21a25da7/70bc07bec69c8941.png)  | 
| Out[4]= |   | 
In the conjugate of a quaternion, all the signs of the nonreal components are reversed:
| In[5]:= | ![q = Conjugate[ResourceFunction["Quaternion"][4, -3, 1, -2]]](https://www.wolframcloud.com/obj/resourcesystem/images/eba/eba16af1-b87f-4269-ac6a-f01b21a25da7/55b5d1b01f042da8.png)  | 
| Out[5]= |   | 
The sign of a quaternion is defined in the same way as the sign of a complex number. It is the “direction” of the quaternion:
| In[6]:= | ![Sign[q]](https://www.wolframcloud.com/obj/resourcesystem/images/eba/eba16af1-b87f-4269-ac6a-f01b21a25da7/060e517da8a99786.png)  | 
| Out[6]= |   | 
Get the standard Euclidean length:
| In[7]:= | ![Abs[q]](https://www.wolframcloud.com/obj/resourcesystem/images/eba/eba16af1-b87f-4269-ac6a-f01b21a25da7/6dcaf3f23a587852.png)  | 
| Out[7]= |   | 
The exponential of a quaternion can be quite complicated:
| In[8]:= | ![E^ResourceFunction["Quaternion"][2, 3, 1, 6]](https://www.wolframcloud.com/obj/resourcesystem/images/eba/eba16af1-b87f-4269-ac6a-f01b21a25da7/3e439af578ddc4f9.png)  | 
| Out[8]= |   | 
Just as with complex numbers, it is important to beware of branch cuts:
| In[9]:= | ![Sin[Cos[ResourceFunction["Quaternion"][.3, .1, .5, .5]]]](https://www.wolframcloud.com/obj/resourcesystem/images/eba/eba16af1-b87f-4269-ac6a-f01b21a25da7/382b5eb1bb6a3354.png)  | 
| Out[9]= |   | 
A four‐dimensional analog of de Moivre’s theorem is used for calculating powers of quaternions:
| In[10]:= | ![ResourceFunction["Quaternion"][1, 2, 0, 1]^2.5](https://www.wolframcloud.com/obj/resourcesystem/images/eba/eba16af1-b87f-4269-ac6a-f01b21a25da7/539feec94f8a0694.png)  | 
| Out[10]= |   | 
Round for quaternions returns a Quaternion in which either all components are integers or all components are odd multiples of 1/2:
| In[11]:= | ![Round[ResourceFunction["Quaternion"][1/2, 3, 4, 5/2]]](https://www.wolframcloud.com/obj/resourcesystem/images/eba/eba16af1-b87f-4269-ac6a-f01b21a25da7/03795326c9aa886c.png)  | 
| Out[11]= |   | 
A quaternion is even if its norm is even:
| In[12]:= | ![EvenQ[ResourceFunction["Quaternion"][2, 3, 4, 5]]](https://www.wolframcloud.com/obj/resourcesystem/images/eba/eba16af1-b87f-4269-ac6a-f01b21a25da7/599fd7871c2b063f.png)  | 
| Out[12]= |   | 
| In[13]:= | ![EvenQ[Norm[ResourceFunction["Quaternion"][2, 3, 4, 5]]]](https://www.wolframcloud.com/obj/resourcesystem/images/eba/eba16af1-b87f-4269-ac6a-f01b21a25da7/79fa0d9e4fa1c8b3.png)  | 
| Out[13]= |   | 
Just as with complex numbers, the quaternion Mod works:
| In[14]:= | ![Mod[ResourceFunction["Quaternion"][-3, 4, 1, 2], 3]](https://www.wolframcloud.com/obj/resourcesystem/images/eba/eba16af1-b87f-4269-ac6a-f01b21a25da7/253810243624f353.png)  | 
| Out[14]= |   | 
You can specify a quaternion as the modulus:
| In[15]:= | ![Mod[ResourceFunction["Quaternion"][1, 3, 4, 1], ResourceFunction["Quaternion"][3, 4, 1, 2]]](https://www.wolframcloud.com/obj/resourcesystem/images/eba/eba16af1-b87f-4269-ac6a-f01b21a25da7/7c9e83c1add2de6f.png)  | 
| Out[15]= |   | 
This work is licensed under a Creative Commons Attribution 4.0 International License