Talk:Long multiplication: Difference between revisions

From Rosetta Code
Content added Content deleted
m (→‎BigNum: fix typo.)
(→‎BigNum: what about code with "good" license? usable? must be semplified to make it intellegible in the RC-sense?)
Line 26: Line 26:


[[User:NevilleDNZ|NevilleDNZ]] 10:56, 26 February 2009 (UTC)
[[User:NevilleDNZ|NevilleDNZ]] 10:56, 26 February 2009 (UTC)

: Hm, there's already good code out there, with ''good'' license (GPLv2 or later) too... e.g. [[:Category:Bc|Bc]] is an arbitrary precision calculator ([http://directory.fsf.org/project/bc/ Bc]) ... does it make sense copy-pasting or this behaviour would just waste RC's aims and space? (I believe RC is not about ''originality'', so it would be ok such a copypasted code, if licenses permit it?) Or should someone at least semplify the code or extract relevant parts in order to show more clearly the ''techinics'' of the calculation? --[[User:ShinTakezou|ShinTakezou]] 14:07, 26 February 2009 (UTC)

Revision as of 14:07, 26 February 2009

BigNum

Wouldn't it be appropriate to replace this task with arbitrary-precision arithmetic implementation? I.e. long to long +, -, *, /, and long to short +, -, *, /. The divisions are to be implemented in a complete form (result + remainder).

Hi User_talk:Dmitry-kazakov. Yes that makes sense. For the moment I'll switch this task to be a member of Category:Arbitrary precision. IIRC the Newton Raphson Kontorovich method can be used to speed up the division. It looks interesting....

Re: long/short implementations... I spotted the Ada Rational Arithmetic sample code with "long + short" and considered replicating. But by the time if counted all the combinations I ran out of fingers and toes. E.g. one would have to combine the short..., short short, short, long, long long, long... for int, real, compl for the operators "+", "-", "/", "*", "%", "%*", "**", etc ... ALSO: ×, ÷, ... abs, over, mod up, bin etc ... together with "+:=", "-:=" etc ...

Result: No more toes... I think C++/Ada templates can manage this kind of complexity.

The ALGOL 68 standard had a shorthand/template ≮L≯ for this. e.g.

op ≮÷*, %*, ÷×, %×, mod≯  = (L int a, i) L int: ...

But this for the compiler writer, and not available to programmers.

NevilleDNZ 10:56, 26 February 2009 (UTC)

Hm, there's already good code out there, with good license (GPLv2 or later) too... e.g. Bc is an arbitrary precision calculator (Bc) ... does it make sense copy-pasting or this behaviour would just waste RC's aims and space? (I believe RC is not about originality, so it would be ok such a copypasted code, if licenses permit it?) Or should someone at least semplify the code or extract relevant parts in order to show more clearly the techinics of the calculation? --ShinTakezou 14:07, 26 February 2009 (UTC)