Rocksolid Light

Welcome to Rocksolid Light

mail  files  register  newsreader  groups  login

Message-ID:  

FORTH IF HONK THEN


devel / comp.lang.go / gonum panic

SubjectAuthor
* gonum panicRob
`* Re: gonum panicrek2 hispagatos
 `- Re: gonum panicRob

1
gonum panic

<f0lhvi9rp0ou7hsf2k80fs38hak379jgtg@4ax.com>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=27&group=comp.lang.go#27

  copy link   Newsgroups: comp.lang.go
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: usenet@drrob1.com (Rob)
Newsgroups: comp.lang.go
Subject: gonum panic
Date: Mon, 18 Mar 2024 19:58:31 -0400
Organization: A noiseless patient Spider
Lines: 79
Message-ID: <f0lhvi9rp0ou7hsf2k80fs38hak379jgtg@4ax.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Injection-Info: dont-email.me; posting-host="c471ddc24e8dae1dc02fe294b6b2ee97";
logging-data="477597"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/txlbGY87aqtesdeNbyl9mPH4InzBZFvQ="
User-Agent: ForteAgent/8.00.32.1272
Cancel-Lock: sha1:dP32qfC0BD9KAjhhHqtUEArvmP8=
 by: Rob - Mon, 18 Mar 2024 23:58 UTC

Hi. I'm trying to understand gonum, but it's generating a seg fault.
I don't understand why

package main

import (
"fmt"
ct "github.com/daviddengcn/go-colortext"
ctfmt "github.com/daviddengcn/go-colortext/fmt"
gomat "gonum.org/v1/gonum/mat"
"math/rand/v2"
"os"
)

const aRows = 3
const aCols = aRows
const bRows = aRows

func goNumQRTest() {
// Will look to solve AX = B, for X

initialVal := float64(randRange(1, 10))
increment := float64(randRange(1, 5))

initX := make([]float64, aCols)
initX[0] = initialVal
initX[1] = initialVal + increment
initX[2] = initialVal + 2*increment

X := gomat.NewVecDense(bRows, initX)
fmt.Printf(" X:\n%.4g\n\n", gomat.Formatted(X))

// Now need to assign coefficients in matrix A
initA := make([]float64, aRows*aCols)

for i := range initA {
initA[i] = float64(randRange(1, 20))
}

A := gomat.NewDense(aRows, aCols, initA)
fmt.Printf(" A:\n%.4g\n\n", gomat.Formatted(A))

var B gomat.Dense
B.Mul(A, X)
fmt.Printf(" B:\n%.4g\n\n", gomat.Formatted(&B))

// try QR stuff
var qr gomat.QR
var qrSoln *gomat.Dense
qr.Factorize(A)

// this function call panics w/ invalid memory reference or nil
// pointer dereference.
err := qr.SolveTo(qrSoln, false, &B)
if err != nil {
ctfmt.Printf(ct.Red, false, " Error from qr Solve To
is %s. Bye-Bye\n", err)
os.Exit(1)
}
fmt.Printf(" Soluton by gonum QR factorization is:\n %v\n\n",
gomat.Formatted(qrSoln))

} // end gonumQRTest

// MAIN PROGRAM

func main() {
goNumQRTest()

}

func randRange(minP, maxP int) int {
if maxP < minP {
minP, maxP = maxP, minP
}
return minP + rand.IntN(maxP-minP)
}

Re: gonum panic

<utatus$2me53$1@matrix.hispagatos.org>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=28&group=comp.lang.go#28

  copy link   Newsgroups: comp.lang.go
Path: i2pn2.org!i2pn.org!news.hispagatos.org!.POSTED!not-for-mail
From: rek2@hispagatos.org.invalid (rek2 hispagatos)
Newsgroups: comp.lang.go
Subject: Re: gonum panic
Date: Tue, 19 Mar 2024 02:40:28 -0000 (UTC)
Organization: Hispagatos
Message-ID: <utatus$2me53$1@matrix.hispagatos.org>
References: <f0lhvi9rp0ou7hsf2k80fs38hak379jgtg@4ax.com>
Reply-To: ReK2 <rek2@hispagatos.org>
Injection-Date: Tue, 19 Mar 2024 02:40:28 -0000 (UTC)
Injection-Info: matrix.hispagatos.org;
logging-data="2832547"; mail-complaints-to="abuse@hispagatos.org"
User-Agent: slrn/pre1.0.4-9 (Linux)
 by: rek2 hispagatos - Tue, 19 Mar 2024 02:40 UTC

On 2024-03-18, Rob <usenet@drrob1.com> wrote:
>
> // this function call panics w/ invalid memory reference or nil
> // pointer dereference.
> err := qr.SolveTo(qrSoln, false, &B)
> if err != nil {
> ctfmt.Printf(ct.Red, false, " Error from qr Solve To
> is %s. Bye-Bye\n", err)
> os.Exit(1)
> }
> fmt.Printf(" Soluton by gonum QR factorization is:\n %v\n\n",
> gomat.Formatted(qrSoln))
>
> } // end gonumQRTest
>

I just overead very fast so double check this,

var qrSoln gomat.Dense // Change this line, remove pointer.

// Initialize qrSoln
qrSoln = *gomat.NewDense(0, 0, nil) // Initialize qrSoln with an empty dense matrix

....
err := qr.SolveTo(&qrSoln, false, &B) // Pass the address of qrSoln

The qrSoln pointer is not initialized, so it's pointing to nil, causing a panic
when you try to dereference it.
https://pkg.go.dev/github.com/changkun/gomat#NewDense

Hope it helps.

Happy Hacking
ReK2

--
- {gemini,https}://{,rek2.}hispagatos.org - mastodon: @rek2@hispagatos.space
- [https|gemini]://2600.Madrid - https://hispagatos.space/@rek2
- https://keyoxide.org/A31C7CE19D9C58084EA42BA26C0B0D11E9303EC5

Re: gonum panic

<gf1jvi58ie149uqvrfu5t2634t6dul0e1i@4ax.com>

  copy mid

http://rslight.i2p/devel/article-flat.php?id=29&group=comp.lang.go#29

  copy link   Newsgroups: comp.lang.go
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: usenet@drrob1.com (Rob)
Newsgroups: comp.lang.go
Subject: Re: gonum panic
Date: Tue, 19 Mar 2024 08:36:00 -0400
Organization: A noiseless patient Spider
Lines: 34
Message-ID: <gf1jvi58ie149uqvrfu5t2634t6dul0e1i@4ax.com>
References: <f0lhvi9rp0ou7hsf2k80fs38hak379jgtg@4ax.com> <utatus$2me53$1@matrix.hispagatos.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Injection-Info: dont-email.me; posting-host="c471ddc24e8dae1dc02fe294b6b2ee97";
logging-data="882771"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/dPpVZhtSyvBTH/OPiuTOOjfPx3sMB40E="
User-Agent: ForteAgent/8.00.32.1272
Cancel-Lock: sha1:6KBTRm0MPgc3Vp5ZeNuoTNHsC+w=
 by: Rob - Tue, 19 Mar 2024 12:36 UTC

On Tue, 19 Mar 2024 02:40:28 -0000 (UTC), rek2 hispagatos
<rek2@hispagatos.org.invalid> wrote:

>On 2024-03-18, Rob <usenet@drrob1.com> wrote:
>>
>> // this function call panics w/ invalid memory reference or nil
>> // pointer dereference.
>> err := qr.SolveTo(qrSoln, false, &B)
>> if err != nil {
>> ctfmt.Printf(ct.Red, false, " Error from qr Solve To
>> is %s. Bye-Bye\n", err)
>> os.Exit(1)
>> }
>> fmt.Printf(" Soluton by gonum QR factorization is:\n %v\n\n",
>> gomat.Formatted(qrSoln))
>>
>> } // end gonumQRTest
>>
>
>var qrSoln gomat.Dense // Change this line, remove pointer.
>
> qrSoln = *gomat.NewDense(0, 0, nil) // Initialize qrSoln with an empty dense matrix
>
>The qrSoln pointer is not initialized, so it's pointing to nil, causing a panic
>when you try to dereference it.
>https://pkg.go.dev/github.com/changkun/gomat#NewDense
>
>Happy Hacking
>ReK2

gomat.NewDense(0,0,nil) is not allowed, as the zero dimensions
panicked. But now it's working.

Thanks.


devel / comp.lang.go / gonum panic

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor