Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Problem mit Bignum2
Flamefire - Fr 04.12.09 20:06
Titel: Problem mit Bignum2
Ich versuche mit der Bignum2 unit eine berechnung zu machen.
quelle:
http://www.delphi-forum.de/viewtopic.php?t=83402&highlight=bignum2
code sieht so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| fakt1:=glsys[j,Nulli]; fakt2:=glsys[i,Nulli]; for k := 0 to varCt do begin if(not RowToDo[k]) then continue; glsys[j,k].Multiply(fakt2); tmpbn:=glsys[i,k].Product(fakt1); glsys[j,k].Sub(tmpbn); end; |
wenn ich das ausführe so dass z.b. nach dem ersten schleifendurchlauf(k=Nulli) glsys[j,k]=0 ist dann setzt er mir aus irgendeinem grund auch fakt1 auf 0
funktioniert die zuweisung nicht, sodass er das object nicht kopiert, sondern nur den pointer?
wie kann ich das umgehen?
EDIT: falls jemand das gleich prob hat:
zu lösen mit fakt1.Asign(glsys[j,Nulli].Number); wie erwartet... ;-)
Anderes Problem: BigNum2 unterstützt keine negativen werte :-(
Was nun? brauch große Integer. Aber wirklich integer. also auch negative werte
Flamefire - So 06.12.09 01:24
habe die bigint als vergleich mal ausprobiert.
die kann zwar negative werte, ist aber anscheinend nicht korrekt. weiß nicht warum, aber sie gibt mir manchmal falsche werte bei einfach operationen wie den obigen...
setzt den MSB eintrag anscheinend falsch bei einer multiplikation oder subtraktion :-(
,uss vl doch die bignum für negative werte umschreiben, falls keiner ne andre idee hat
BenBE - So 06.12.09 14:18
Was dir helfen könnte ist ggf. die Funktion BM_Assign bzw. deren Wrapper. Damit wird explizit eine Kopie angefertigt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!