* exponentiation of fixed point or decimal
@ 2000-12-14 18:24 Matthias Teege
2000-12-16 1:31 ` Robert Dewar
2000-12-23 15:23 ` Mats Weber
0 siblings, 2 replies; 3+ messages in thread
From: Matthias Teege @ 2000-12-14 18:24 UTC (permalink / raw)
Moin,
I have a question about exponentiation of fixed point typs. The
following code didnt compile because of the '**' operator is not
defined for fixed point typs. So I made a lot of type conversions from
my fixed point type to float but the result for an Var_B of 10000
differs 0.01 of what my desk calculator says.
I have also made test with the numerics packages. If I use reals there
will be a better result but my "application" is for financial
transactions and I think fixed point or decimal is the best choice.
Is there any way for an exponentiation of fixed types?
procedure test is
Max_Delta : constant := 0.001;
Max_Digits : constant := 15;
type MyDec is delta Max_Delta digits Max_Digits;
package MyDec_IO is new Ada.Text_IO.Decimal_IO(MyDec);
Var_A: MyDec := 5.00;
Var_B: MyDec;
function myfunc(K: MyDec; Z: MyDec; Count: Positive ) return MyDec is
begin
return K * (1.00 + Z / 100) ** Count;
-- return MyDec(Float(K) * Float((1.00 + Z / 100)) ** Count);
end myfunc;
Begin
MyDec_IO.Get(Var_B);
MyDec_IO.Put(myfunc(Var_B, 5.00, 5), EXP=>0, FORE=>2, AFT=>2);
end test;
Many thanks
Matthias
--
Matthias Teege -- matthias@mteege.de -- http://emugs.de
make world not war
PGP-Key auf Anfrage
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: exponentiation of fixed point or decimal
2000-12-14 18:24 exponentiation of fixed point or decimal Matthias Teege
@ 2000-12-16 1:31 ` Robert Dewar
2000-12-23 15:23 ` Mats Weber
1 sibling, 0 replies; 3+ messages in thread
From: Robert Dewar @ 2000-12-16 1:31 UTC (permalink / raw)
In article <87hf46uah6.fsf@moon.mteege.de>,
Matthias Teege <matthias@mteege.de> wrote:
>
> Moin,
>
> I have a question about exponentiation of fixed
point typs. The
> following code didnt compile because of the '**'
operator is not
> defined for fixed point typs. So I made a lot of
type conversions from
> my fixed point type to float
Why on earth did you chose type Float, is 6 digits
*really* enough accuracy for your "financial
application"?
Sent via Deja.com
http://www.deja.com/
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: exponentiation of fixed point or decimal
2000-12-14 18:24 exponentiation of fixed point or decimal Matthias Teege
2000-12-16 1:31 ` Robert Dewar
@ 2000-12-23 15:23 ` Mats Weber
1 sibling, 0 replies; 3+ messages in thread
From: Mats Weber @ 2000-12-23 15:23 UTC (permalink / raw)
In my compoenent library
http://lglwww.epfl.ch/Team/MW/mw_components.html
there is a package called exponentiation_functions that will do what you
want, using the multiplication defined for the fixed point type. You
will have to be careful about roundoff errors, fixed point types can be tricky.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2000-12-23 15:23 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-12-14 18:24 exponentiation of fixed point or decimal Matthias Teege
2000-12-16 1:31 ` Robert Dewar
2000-12-23 15:23 ` Mats Weber
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox