@@ -88,17 +88,17 @@ Conventions:
88
88
89
89
.. math ::
90
90
\begin {array}{lll@{\qquad }l}
91
- \satu _N(i) &=& 2 ^N-1 & (\iff i > 2 ^N-1 )\\
92
91
\satu _N(i) &=& 0 & (\iff i < 0 ) \\
92
+ \satu _N(i) &=& 2 ^N-1 & (\iff i > 2 ^N-1 )\\
93
93
\satu _N(i) &=& i & (\otherwise ) \\
94
94
\end {array}
95
95
96
96
* Signed saturation, :math: `\sats _N(i)` clamps :math: `i` to between :math: `-2 ^{N-1 }` and :math: `2 ^{N-1 }-1 `:
97
97
98
98
.. math ::
99
99
\begin {array}{lll@{\qquad }l}
100
- \sats _N(i) &=& \signed _N^{- 1 }(- 2 ^{N-1 }) & (\iff i < -2 ^{N-1 })\\
101
- \sats _N(i) &=& \signed _N^{- 1 }( 2 ^{N-1 }-1 ) & (\iff i > 2 ^{N-1 }-1 )\\
100
+ \sats _N(i) &=& - 2 ^{N-1 } & (\iff i < -2 ^{N-1 })\\
101
+ \sats _N(i) &=& 2 ^{N-1 }-1 & (\iff i > 2 ^{N-1 }-1 )\\
102
102
\sats _N(i) &=& i & (\otherwise )
103
103
\end {array}
104
104
@@ -860,11 +860,11 @@ The integer result of predicates -- i.e., :ref:`tests <syntax-testop>` and :ref:
860
860
861
861
* Let :math: `j` be the result of adding :math: `j_1 ` and :math: `j_2 `.
862
862
863
- * Return :math: `\sats _N(j)`.
863
+ * Return the value whose signed interpretation is :math: `\sats _N(j)`.
864
864
865
865
.. math ::
866
866
\begin {array}{lll@{\qquad }l}
867
- \iaddsats _N(i_1 , i_2 ) &=& \sats _N(\signed _N(i_1 ) + \signed _N(i_2 ))
867
+ \iaddsats _N(i_1 , i_2 ) &=& \signed _N^{- 1 }( \ sats _N(\signed _N(i_1 ) + \signed _N(i_2 ) ))
868
868
\end {array}
869
869
870
870
@@ -894,11 +894,11 @@ The integer result of predicates -- i.e., :ref:`tests <syntax-testop>` and :ref:
894
894
895
895
* Let :math: `j` be the result of subtracting :math: `j_2 ` from :math: `j_1 `.
896
896
897
- * Return :math: `\sats _N(j)`.
897
+ * Return the value whose signed interpretation is :math: `\sats _N(j)`.
898
898
899
899
.. math ::
900
900
\begin {array}{lll@{\qquad }l}
901
- \isubsats _N(i_1 , i_2 ) &=& \sats _N(\signed _N(i_1 ) - \signed _N(i_2 ))
901
+ \isubsats _N(i_1 , i_2 ) &=& \signed _N^{- 1 }( \ sats _N(\signed _N(i_1 ) - \signed _N(i_2 ) ))
902
902
\end {array}
903
903
904
904
@@ -922,11 +922,11 @@ The integer result of predicates -- i.e., :ref:`tests <syntax-testop>` and :ref:
922
922
:math: `\iq15 mulrsats_N(i_1 , i_2 )`
923
923
.................................
924
924
925
- * Return the result of :math: `\sats _N(\ishrs _N(i_1 \cdot i_2 + 2 ^{14 }, 15 ))`.
925
+ * Return the whose signed interpretation is the result of :math: `\sats _N(\ishrs _N(i_1 \cdot i_2 + 2 ^{14 }, 15 ))`.
926
926
927
927
.. math ::
928
928
\begin {array}{lll@{\qquad }l}
929
- \iq15 mulrsats_N(i_1 , i_2 ) &=& \sats _N(\ishrs _N(i_1 \cdot i_2 + 2 ^{14 }, 15 ))
929
+ \iq15 mulrsats_N(i_1 , i_2 ) &=& \signed _N^{- 1 }( \ sats _N(\ishrs _N(i_1 \cdot i_2 + 2 ^{14 }, 15 ) ))
930
930
\end {array}
931
931
932
932
@@ -1901,14 +1901,14 @@ Conversions
1901
1901
1902
1902
* Else if :math: `z` is positive infinity, then return :math: `2 ^{N-1 } - 1 `.
1903
1903
1904
- * Else, return :math: `\sats _N(\trunc (z))`.
1904
+ * Else, return the value whose signed interpretation is :math: `\sats _N(\trunc (z))`.
1905
1905
1906
1906
.. math ::
1907
1907
\begin {array}{lll@{\qquad }l}
1908
1908
\truncsats _{M,N}(\pm \NAN (n)) &=& 0 \\
1909
1909
\truncsats _{M,N}(- \infty ) &=& -2 ^{N-1 } \\
1910
1910
\truncsats _{M,N}(+ \infty ) &=& 2 ^{N-1 }-1 \\
1911
- \truncsats _{M,N}(z) &=& \sats _N(\trunc (z)) \\
1911
+ \truncsats _{M,N}(z) &=& \signed _N^{- 1 }( \ sats _N(\trunc (z) )) \\
1912
1912
\end {array}
1913
1913
1914
1914
@@ -2006,11 +2006,11 @@ Conversions
2006
2006
2007
2007
* Let :math: `j` be the :ref: `signed interpretation <aux-signed >` of :math: `i` of size :math: `M`.
2008
2008
2009
- * Return :math: `\sats _N(j)`.
2009
+ * Return the value whose signed interpretation is :math: `\sats _N(j)`.
2010
2010
2011
2011
.. math ::
2012
2012
\begin {array}{lll@{\qquad }l}
2013
- \narrows _{M,N}(i) &=& \sats _N(\signed _M(i))
2013
+ \narrows _{M,N}(i) &=& \signed _N^{- 1 }( \ sats _N(\signed _M(i) ))
2014
2014
\end {array}
2015
2015
2016
2016
@@ -2220,7 +2220,7 @@ The implementation-specific behaviour of this operation is determined by the glo
2220
2220
.. note ::
2221
2221
Relaxed unsigned truncation is implementation-dependent for NaNs and out-of-range values.
2222
2222
In the :ref: `deterministic profile <profile-deterministic >`,
2223
- it behaves like regular :math: `\truncu `.
2223
+ it behaves like regular :math: `\truncsatu `.
2224
2224
2225
2225
2226
2226
.. _op-relaxed_trunc_s :
@@ -2243,7 +2243,7 @@ The implementation-specific behaviour of this operation is determined by the glo
2243
2243
.. note ::
2244
2244
Relaxed signed truncation is implementation-dependent for NaNs and out-of-range values.
2245
2245
In the :ref: `deterministic profile <profile-deterministic >`,
2246
- it behaves like regular :math: `\truncs `.
2246
+ it behaves like regular :math: `\truncsats `.
2247
2247
2248
2248
2249
2249
.. _op-irelaxed_swizzle :
0 commit comments