From 22c9e99fa3d3ad74f8acd28b298bdb46d3b76de7 Mon Sep 17 00:00:00 2001 From: Irmen de Jong Date: Wed, 29 May 2024 23:12:00 +0200 Subject: [PATCH] explain integer math sin/cos routines even better --- docs/source/libraries.rst | 7 +- docs/source/sinegraph.odg | Bin 0 -> 19485 bytes docs/source/sinegraph.svg | 348 +++++++++++++++++++++----------------- 3 files changed, 196 insertions(+), 159 deletions(-) create mode 100644 docs/source/sinegraph.odg diff --git a/docs/source/libraries.rst b/docs/source/libraries.rst index f70be39a2..6b191fdbe 100644 --- a/docs/source/libraries.rst +++ b/docs/source/libraries.rst @@ -500,11 +500,10 @@ but perhaps the provided ones can be of service too. Sets a new seed for the pseudo-RNG sequence (both rnd and rndw). The seed consists of two words. Do not use zeros for the seed! -.. sidebar:: - +.. hint:: This is a graph showing the various ranges of values mentioned in the integer sine and cosine - routines that follow below. - + routines that follow below. (Note that the x input value never corresponds to an exact *degree* + around the circle 0..359 as that exceeds a byte value. There's double-degrees though; 0...179) Only the sine function is shown, but the cosine function follows the same pattern. .. image:: sinegraph.svg diff --git a/docs/source/sinegraph.odg b/docs/source/sinegraph.odg new file mode 100644 index 0000000000000000000000000000000000000000..f14f5210b8c2dc12de6d75d9a26b2fd77f042e38 GIT binary patch literal 19485 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�{dr9X9k9mX>V*( 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 literal 0 HcmV?d00001 diff --git a/docs/source/sinegraph.svg b/docs/source/sinegraph.svg index b7bb8d176..bf7894dba 100644 --- a/docs/source/sinegraph.svg +++ b/docs/source/sinegraph.svg @@ -1,16 +1,30 @@ - + - + - + + + + + + + + + + + + + + + @@ -18,7 +32,7 @@ - + @@ -32,7 +46,7 @@ - + @@ -48,7 +62,7 @@ - + @@ -95,255 +109,279 @@ - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - 0 + + 0 - - π + + π - - + + - - 0 + + 0 - - 128 + + 128 - - 255 + + 255 - - -127 + + -127 - - 0 + + 0 - - 127 + + 127 - - 0 + + 0 - - 0 + + 0 - - 90 + + 90 - - 179 + + 179 - - 255 + + 255 - - 128 + + 128 - - 0 + + 0 - - y = sin(x) + + y = sin(x) - - y + + y - - x + + x + + + + + + sin8, sin8u + + + + + + sinr8, sinr8u + + + + + + sin8, sinr8 + + + + + + sin8u, sinr8u