From 82fe2e9e68f9d68694aaa3181c28ad95bf486e25 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Wed, 24 Nov 2021 10:53:26 -0500 Subject: Clarifications --- docs/doc/undo.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'docs/doc') diff --git a/docs/doc/undo.html b/docs/doc/undo.html index 5afa4543..64d8ab53 100644 --- a/docs/doc/undo.html +++ b/docs/doc/undo.html @@ -27,7 +27,7 @@ ט⁼ ט ¯3 # It's not the same! 3 -

Don't worry, this isn't 'nam. Undo doesn't always satisfy 𝕩 𝔽 𝔽 𝕩, but it does obey 𝕩 𝔽 𝔽 𝕩. That is, it gives one possible argument that could have been passed to 𝔽, just not necessarily the one that actually was. BQN is conservative in how it uses this freedom, so that it won't for example make up new elements entirely to find an inverse. It's usually used when there's an obvious or standard way to pick which of the possible values should be returned.

+

Don't worry, this isn't 'nam. Undo doesn't always satisfy 𝕩 𝔽 𝔽 𝕩, but it does obey 𝕩 𝔽 𝔽 𝕩. That is, it gives one possible argument that could have been passed to 𝔽, just not necessarily the one that actually was. BQN is conservative in how it uses this freedom, so that it won't for example make up new elements entirely to find an inverse: 1 is one function that it could undo but won't. It's usually used when there's an obvious or standard way to pick which of the possible values should be returned.

In a BQN with floating-point numbers, computations are approximate, so the inverse is allowed to be approximate as well (any error should still be very small though).

↗️
    6 - 6
 8.881784197001252e¯16
@@ -35,7 +35,7 @@
 

What's supported?

For the full list, see the specification. An individual implementation might support a lot more functionality than is required, so if you're not concerned about portability just try out whatever function you're interested in.

Arithmetic and simple combinators are usually invertible. A compound function that refers to its argument just once, like 6+⌽, can typically be undone, but one that uses the argument in two different ways, such as ⊢+⋆, probably can't.

-

A few notable inverses are the logarithm , un-Transpose , and Indices inverse /. Enclose inverse, <, is an alternative to First that requires its argument to be a unit.

+

A few notable inverses are the logarithm , un-Transpose , and Indices inverse /. Enclose inverse, <, is an alternative to First that requires its argument to be a unit array.

Structural functions like Take and shifts that remove elements from 𝕩 can't be inverted, because given the result there's no way to know what the elements should be. However, there are two special cases that have inverses defined despite losing data: these are and k where k is a constant (a data type, or k˙). For these, 𝕩 is required to match the always returned value 𝕨 or k, and this value is also used for the result—even though any result would be valid, as these functions ignore 𝕩.

↗️
    3  4
 ERROR
-- 
cgit v1.2.3