« first day (2749 days earlier)      last day (100 days later) » 

3:42 AM
@LdBeth The issue with +⌿ is that + on IEEE floats is neither commutative, nor even associative in general. Parallel folds necessarily use a different association than a linear fold, and some algorithms even commute blocks around. Thus, to work stably in all cases, one needs to stick with a naive linear +⌿ IIUC.
That said, given certain constraints, you can guarantee associativity and commutivity, which might be getting leveraged somehow in the interpreter. Perhaps questions for Karta.
 
2 hours later…
5:19 AM
@B.Wilson nope, Dyalog does not attempt to make add/multiplication reduction have identical results as adding/multiplying from right to left, as it overflows in ×/1E200 1E200 1E¯200. Which is not really an issue as neither C compiler that uses SIMD instruction for optimization guarantees that
5:30 AM
Speaking of floating point accuracy in Dyalog, the complex elementary function also looses much accuracy when close to singular point compared to C library’s
But I guess not many users would actually care about that.
For adding reduction, an example +/1 1E30 ¯1E30 gives 0 rather than 1
5:49 AM
choosing the linear order of reduction is not in any way superior as that also does not attempt to resolve the precision loss problem at all.
The accurate summation in J +/!.0 uses compensated summation. If the accumulator used is big enough the result error can be minimized to 1ulp citeseerx.ist.psu.edu/…
big enough -> 67 words of 64bit for double float
 
1 hour later…
7:28 AM
@LdBeth Nice example.
Also, thanks for the paper link. It looks short and sweet.
 
2 hours later…
9:46 AM
@B.Wilson @LdBeth It is actually worse. Dyalog cannot use vector instructions for +/, nor make it go right-to-left, since it was originally (wrongly) implemented as left-to-right, and customers value stability. The plan is for 1⊥ to be fast without making promises on stability. For high precision, APLcart has {(⊢/t)++/((M~b)-1↓t)+(M←⍵∘×+c×~)b←⍵≤⍥|c←¯1↓t←+\0,⍵}
@RubenVerg Done.
 
7 hours later…
4:50 PM
@Adám thanks!
 
2 hours later…
6:26 PM
installed Dyalog (Ver. 19.0.48959) into a virtual machine (Windows 10).
did a ")load patch" to update Dyalog and encountered the following message:

Error 301 Moved Permanently
Please check that:
- The executable you picked is a BASE executable (and not a
PATCHED one)
- Your computer is connected to the internet.

any ideas what is preventing me from updating after a new install?

thanks!!
 
5 hours later…
11:15 PM
Not sure about the 301 error, but believe you've got the latest version of dyalog for windows
11:36 PM
looks like the 301 error is a general HTTP error complaining about the URL (that Dyalog is referencing for downloading the patches) being not valid.

is ")load patch" still the correct way to update non-commercial (i.e. hobbyist) licenses?

« first day (2749 days earlier)      last day (100 days later) »