(no commit message)
authorlkcl <lkcl@web>
Thu, 7 Jul 2022 11:00:39 +0000 (12:00 +0100)
committerIkiWiki <ikiwiki.info>
Thu, 7 Jul 2022 11:00:39 +0000 (12:00 +0100)
openpower/power_trans_ops.mdwn [new file with mode: 0644]

diff --git a/openpower/power_trans_ops.mdwn b/openpower/power_trans_ops.mdwn
new file mode 100644 (file)
index 0000000..ddea00a
--- /dev/null
@@ -0,0 +1,53 @@
+## List of 2-arg opcodes
+
+[[!table  data="""
+opcode    | Description            | pseudocode                 | Extension   |
+FATAN2    | atan2 arc tangent      | rd = atan2(rs2, rs1)       | Zarctrignpi |
+FATAN2PI  | atan2 arc tangent / pi | rd = atan2(rs2, rs1) / pi  | Zarctrigpi  |
+FPOW      | x power of y           | rd = pow(rs1, rs2)         | ZftransAdv  |
+FPOWN     | x power of n (n int)   | rd = pow(rs1, rs2)         | ZftransAdv  |
+FPOWR     | x power of y (x +ve)   | rd = exp(rs1 log(rs2))     | ZftransAdv  |
+FROOTN    | x power 1/n (n integer)| rd = pow(rs1, 1/rs2)       | ZftransAdv  |
+FHYPOT    | hypotenuse             | rd = sqrt(rs1^2 + rs2^2)   | ZftransAdv  |
+"""]]
+
+## List of 1-arg transcendental opcodes
+
+[[!table  data="""
+opcode   | Description              | pseudocode              | Extension  |
+FRSQRT   | Reciprocal Square-root   | rd = sqrt(rs1)          | Zfrsqrt    |
+FCBRT    | Cube Root                | rd = pow(rs1, 1.0 / 3)  | ZftransAdv |
+FRECIP   | Reciprocal               | rd = 1.0 / rs1          | Zftrans    |
+FEXP2    | power-of-2               | rd = pow(2, rs1)        | Zftrans    |
+FLOG2    | log2                     | rd = log(2. rs1)        | Zftrans    |
+FEXPM1   | exponential minus 1      | rd = pow(e, rs1) - 1.0  | ZftransExt |
+FLOG1P   | log plus 1               | rd = log(e, 1 + rs1)    | ZftransExt |
+FEXP     | exponential              | rd = pow(e, rs1)        | ZftransExt |
+FLOG     | natural log (base e)     | rd = log(e, rs1)        | ZftransExt |
+FEXP10   | power-of-10              | rd = pow(10, rs1)       | ZftransExt |
+FLOG10   | log base 10              | rd = log(10, rs1)       | ZftransExt |
+"""]]
+
+## List of 1-arg trigonometric opcodes
+
+[[!table  data="""
+opcode      | Description              | pseudo-code             | Extension |
+FSIN        | sin (radians)            | rd = sin(rs1)           | Ztrignpi    |
+FCOS        | cos (radians)            | rd = cos(rs1)           | Ztrignpi    |
+FTAN        | tan (radians)            | rd = tan(rs1)           | Ztrignpi    |
+FASIN       | arcsin (radians)         | rd = asin(rs1)          | Zarctrignpi |
+FACOS       | arccos (radians)         | rd = acos(rs1)          | Zarctrignpi |
+FATAN       | arctan (radians)         | rd = atan(rs1)          | Zarctrignpi |
+FSINPI      | sin times pi             | rd = sin(pi * rs1)      | Ztrigpi |
+FCOSPI      | cos times pi             | rd = cos(pi * rs1)      | Ztrigpi |
+FTANPI      | tan times pi             | rd = tan(pi * rs1)      | Ztrigpi |
+FASINPI     | arcsin / pi              | rd = asin(rs1) / pi     | Zarctrigpi |
+FACOSPI     | arccos / pi              | rd = acos(rs1) / pi     | Zarctrigpi |
+FATANPI     | arctan / pi              | rd = atan(rs1) / pi     | Zarctrigpi |
+FSINH       | hyperbolic sin (radians) | rd = sinh(rs1)          | Zfhyp |
+FCOSH       | hyperbolic cos (radians) | rd = cosh(rs1)          | Zfhyp |
+FTANH       | hyperbolic tan (radians) | rd = tanh(rs1)          | Zfhyp |
+FASINH      | inverse hyperbolic sin   | rd = asinh(rs1)         | Zfhyp |
+FACOSH      | inverse hyperbolic cos   | rd = acosh(rs1)         | Zfhyp |
+FATANH      | inverse hyperbolic tan   | rd = atanh(rs1)         | Zfhyp |
+"""]]