user@host:~/j9.5> LANG=C ./jconsole.sh
JVERSION
Engine: j9.5.0-beta2/j64avx2/linux
Build: commercial/2023-05-02T22:44:04/clang-11-0-0/SLEEF=1
Library: 9.5.1
Platform: Linux 64
Installer: j9.5 install
InstallPath: /home/user/j9.5
Contact: www.jsoftware.com
load 'math/mt/mt-crash'
JE has crashed, likely due to an internal bug. Please report the code which
caused the
crash, as well as the following printout, to the J programming forum.
0000000000403132: ?:0: ?
00007ffa9ace4cff: ?:0: ?
00007ffa965dd3aa: ?:0: ?
00007ffa965fad80: ?:0: ?
00007ffa9656d19f: ?:0: ?
00007ffa965dea22: ?:0: ?
00007ffa965ad206: ?:0: ?
00007ffa965f145d: ?:0: ?
00007ffa965dea22: ?:0: ?
00007ffa965ad206: ?:0: ?
00007ffa965f145d: ?:0: ?
00007ffa9655d038: ?:0: ?
00007ffa96575c02: ?:0: ?
00007ffa9657546e: ?:0: ?
00007ffa9655cda2: ?:0: ?
00007ffa965f145d: ?:0: ?
00007ffa965dea22: ?:0: ?
00007ffa965de27c: ?:0: ?
00007ffa965e3590: ?:0: ?
00007ffa967a4f15: ?:0: ?
00007ffa9657546e: ?:0: ?
00007ffa965f145d: ?:0: ?
00007ffa965dea22: ?:0: ?
00007ffa965ad206: ?:0: ?
00007ffa965dea22: ?:0: ?
00007ffa965ad206: ?:0: ?
00007ffa965f145d: ?:0: ?
00007ffa9655ce6b: ?:0: ?
00007ffa9659056f: ?:0: ?
00007ffa96575b1f: ?:0: ?
00007ffa965dea22: ?:0: ?
00007ffa965ad206: ?:0: ?
00007ffa965dea22: ?:0: ?
00007ffa965ad206: ?:0: ?
00007ffa965dea22: ?:0: ?
00007ffa965de27c: ?:0: ?
00007ffa965e3679: ?:0: ?
00007ffa967a372d: ?:0: ?
00007ffa967a3941: ?:0: ?
00007ffa965dea22: ?:0: ?
00007ffa965ad206: ?:0: ?
00007ffa9655ce6b: ?:0: ?
00007ffa965f0e44: ?:0: ?
00007ffa965dea22: ?:0: ?
00007ffa965ad206: ?:0: ?
00007ffa965f0e44: ?:0: ?
00007ffa965dea22: ?:0: ?
00007ffa965ad206: ?:0: ?
00007ffa965f0e44: ?:0: ?
00007ffa965dea22: ?:0: ?
00007ffa965de27c: ?:0: ?
00007ffa965e3679: ?:0: ?
00007ffa965ce80f: ?:0: ?
00007ffa965ce601: ?:0: ?
000000000040306f: ?:0: ?
00007ffa9accf24c: ?:0: ?
00000000004024dd: ?:0: ?
ffffffffffffffff: ?:0: ?
-----------------------------------------------------------------------------
./jconsole.sh: line 6: 16387 Aborted (core dumped) bin/jconsole
"$@"
Minimal script is attached. See the comments there. A small changes (remove
empty lines,
add comments etc.) can make a crash disappear.
--
Regards,
Igor
coclass 'mt'
FP_BASE=: 2
FP_ELEN=: IF64 { 8 11
FP_FLEN=: IF64 { 24 53
FP_EBIAS=: <. (FP_BASE ^ (FP_ELEN - 1)) - 1
FP_EPS=: FP_BASE ^ (- FP_FLEN)
FP_PREC=: FP_BASE * FP_EPS
FP_EMIN=: <. 1 - FP_EBIAS
FP_UNFL=: FP_BASE ^ FP_EMIN NB. remove this line to avoid crash
FP_EMAX=: <. ((FP_BASE ^ FP_ELEN) - FP_BASE) - FP_EBIAS
FP_SFMIN=: FP_BASE ^ (FP_EMIN >. (- FP_EMAX))
mp=: +/ .*
max=: >./` 0: @.(0 = #) NB. remove this line to avoid crash
negneg=: -@]^:(0>[)
negpos=: -@]^:(0<:[)
sorim=: | `(+/"1@:| @:+.)@.(JCMPX = 3!:0)
fmtlog=: ;@:(40 17 17 17 17 _16&(({.{.@('d<n/a>'&(8!:2)))&.>))
dhs2liso=: 1&$: :({.@] + (negneg~ {.) * i.@(negneg/)@])
norms=: ((+/ &.:*:@: % * ]) >./ )@,@:|
@ (+.^:(JCMPX = 3!:0))
ft4lisoa=: /(&i.)/(@$)
trcut=: 2 : '((m&*)@:(<./"1)@v $) {. ]'
trucut=: 1 _1 trcut (] ,. (-~ {:))
tr=: 2 : '0&$: :([ ((u~ (-~ ft4lisoa)) {.`(0 ,: {:)}@,: ]) v)'
diagliso=: 0 0 _&$: :(4 : 0)
'd h s'=. x=. ((i. 3) < (# x))} 0 0 _ ,: x
'm n'=. y=. 2 $ y
H=. n (-@*^:(0 > ])) d
S=. 0 >. <./ y , <. -: (n + m - | n - m + +: d)
(h ,: s <. S) ];.0 (>: n) dhs2liso H , S
)
c=: {:!.1@$
rt=: (*@[ * |@[ <. (({.~ #)~ $)) {. ]
upd=: (@:{) (`[) (`])}
tru=: (<:~ 0&<.) tr trucut
ct=: +@:|:
setdiag=: 4 : 0
'e dhs'=. x
dhs=. ((i. 3) < (# dhs))} 0 0 _ ,: dhs
liso=. dhs diagliso $ y
e (liso"_)} y
)
stitcht=: ,.`([,.({. ~ #)~)`(({. ~ #),.])@.(*@-&#)
idmat=: a:&$: :((1;[) setdiag (0 $~ 2 $ ]))
tmonad=: 2 : 0
'`vgety vgeto vrcond vferr vberr'=. n
try. rcond=. vrcond y catch. rcond=. _ end.
try.
argy=. vgety y
try.
't s'=. timespacex 'ret=. ' , m , ' argy'
try.
out=. vgeto ret
try. ferr=. y vferr out catch. ferr=. _. end.
try. berr=. y vberr out catch. berr=. _. end.
catch.
'ferr berr'=. 2 # _.
end.
catch.
dbsig 3
end.
catch.
'ferr berr t s'=. 4 # _.
end.
logline=. fmtlog_mt_ m ; rcond ; ferr ; berr ; t ; s
logline (1!:2) 2
wd^:IFQT 'msgs'
NB. to avoid crash in clean session modify the line above by either:
NB. - remove that line
NB. - or append a comment at the end of that line
EMPTY
)
QFNB=: 32
QFNX=: 128
latzr=: 4 : 0
iso=. < < < (dhs2liso 0 , x) , _1
n=. c y
sfxB=. (- n) {. y
y=. (- n) }. y
pfx=. 0 {."1 y
while. c y do.
y=. y , {. sfxB
sfxB=. 1 1 }. sfxB
z=. {."1 y
bak=. iso { z
z=. larfgb 0 iso} z
y=. ((1) _1} z) larzlcfc }."1 y
pfx=. (pfx , 0) ,. bak iso} z
end.
pfx
)
tzzrf=: 3 : 0
y=. 0 , y
l=. -/ 'm1 n'=. $ y
sfxB=. (- n) {. y
y=. (- n) }. y
pfx=. 0 {."1 y
nb=. QFNB <. c y
I=. idmat nb
O=. (2 # nb) $ 0
while. QFNX < c y do.
y=. y , nb {. sfxB
sfxB=. (2 # nb) }. sfxB
Z=. l latzr nb {."1 y
y=. (I ,~ l {. Z) larzblcfc nb }."1 y
I=. O , I
pfx=. pfx stitcht Z
end.
pfx stitcht l latzr y , sfxB
)
REFSAFMIN=: FP_SFMIN % FP_EPS
larxtf=: 2 : '(] (] ((0 ,~ [) ,. (mp }:) , _1 { ]) ({~ (<@;~ i.@>:)@#
))^:(-&#) 1 1&rt)@(-@(m&{) *"1 (_1;a:) tru@setdiag (v ct)@(0&(m})))'
larxlcxc=: 1 : '] - [ */ (mp~ +@(0&(m}) * m&{))~' NB. C - v * ((v * τ)' * C)
larfg=: 4 : 0
'ioa iot'=. x
alpha=. ioa { y
y=. 0 iot} y NB. τ := 0
ynorm=. norms y
if. ynorm =!.0 | 9 o. alpha do. NB. ||y|| == ||(α,x,0)|| == ||α|| and
α ∊ ℝ ?
y NB. (α,0,0) i.e. H==I, τ==0, β==α,
v==0
else.
if. REFSAFMIN > ynorm do. NB. xnorm, β may be inaccurate; scale
x and recompute them
y=. y % REFSAFMIN NB. (α_scaled,x_scaled,0)
beta=. (9 o. alpha) negpos norms y NB. use Re(α) instead Re(α_ascaled)
since sign(Re(α)) == sign(Re(α_scaled)); |β_scaled| ∊ [REFSAFMIN,1)
dzeta=. beta - ioa { y NB. ζ := β_scaled-α_scaled
tau=. dzeta % beta NB. τ := ζ/β_scaled
beta=. REFSAFMIN * beta NB. unscale β; if α is subnormal, it
may lose relative accuracy
else.
beta=. (9 o. alpha) negpos ynorm NB. β := -copysign(||y||,Re(α)),
since ||y|| ≥ 0
dzeta=. beta - alpha
tau=. dzeta % beta
end.
y=. y % - dzeta NB. z := (trash,v,0)
y=. (beta , tau) x} y NB. z := (β_scaled,v,τ)
end.
)
larfgb=: _1 0&larfg
larztfc=: 0 larxtf (mp~)
larzlcfc=: 0 larxlcxc
testlarzt=: 3 : 0
('larztfc' tmonad ((((idmat@]`( (-~ i.)@])`[)} c)@tzzrf@(tru~
-~/@$))`]`(_."_)`(_."_)`(_."_))) 0 {:: y
EMPTY
)
testref=: 1 : 'EMPTY [ testlarzt_mt_@(u ; u)^:(200 >: <./)'
testlow=: 1 : 0
(u testref_mt_ ) y NB. matrices with min dimention ≤ 200 only
EMPTY
)
test=: 1 : 0
(u testlow_mt_ ) y NB. low-level algorithms
EMPTY
)
?@$&0 test_mt_ 10 10
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm