Commit Graph

73 Commits

Author SHA1 Message Date
florian
69ce5fa66b * patch by Max Nazhalov to improve real2str performance, resolves #21825
git-svn-id: trunk@21236 -
2012-05-05 18:29:32 +00:00
Jonas Maebe
676ca4c891 * ifdef jvm -> ifdef cpujvm
git-svn-id: branches/jvmbackend@19829 -
2011-12-12 02:34:15 +00:00
Jonas Maebe
1f96763b9d * renamed Java-specific sstrings.inc/sstringh.inc to jsstrings.inc/
jsstringh.inc -> use generic inc/sstrings.inc
  * added a bunch of extra {$ifdef FPC_HAS_XXX} protections around
    routines in inc/sstrings.inc and implemented those routines for
    the JVM target in java/jsstrings.inc
  * use the majority of the generic routine in sstrings.inc now also
    for the JVM target! Only a few changes were needed:
   o in a few places, calls to move() for copying shortstring->shortstring
     or shortstring->chararray were replaced with calls to a new inline
     helper that calls move() in the version in inc/sstrings.inc, and
     JLSystem.arraycopt() in in the version in java/jsstrings.inc
   o changed the currency argument to str() for the JVM target to constref
     so its address can be taken (has to be typecasted to int64 without
     changing the value), and similarly changed the temporary result
     inside that routine to an array of 1 elements so the address can be
     taken
   o don't typecast the real value to a record type in str_real for the
     JVM target, but work via an int64 instead to extract sign/mantissa/exp
   o everything else compiled and worked as is!!
  -> val, str, hexstr/octstr/binstr, delete, pos, insert, setstring and
     comparetext now all work for shortstrings on the JVM target

git-svn-id: branches/jvmbackend@18836 -
2011-08-24 22:11:43 +00:00
florian
c506913e9b * iso conformant writing of floats (using e instead of E) in iso mode
git-svn-id: trunk@15684 -
2010-07-31 20:45:55 +00:00
Jonas Maebe
025ec34e4d + "CExtended" type that is the same as "extended", but conforming to the
properties/behaviour of the equivalent of Extended in C (i.e., to
    "long double" on i386 and x86_64 platforms that support a 10 byte
    long double, and to "double" elsewhere)

git-svn-id: trunk@14912 -
2010-02-14 13:45:58 +00:00
Jonas Maebe
0c1247ba7d * removed extra space character when generating the maximal number of
significant digits and frac(value)+roundcorr overflows to 1
    (mantis #15308, fix by Dariusz Mazur)

git-svn-id: trunk@14563 -
2010-01-07 15:26:30 +00:00
Jonas Maebe
a1363e95f7 * no longer perform precision correction for single precision values, because
we support writing more digits than are defined (due to Delphi-
    compatibility) and
   a) correcting the precision of undefined digits makes no sense
   b) as a result, this precision correction made some numbers that can be
      represented exactly in single precision inexact
    -- fixes mantis #14230
  * no longer perform precision correction while determining the whole part
    of numbers (usually did nothing anyway, and the rest is caught by the
    final rounding)

git-svn-id: trunk@13574 -
2009-08-22 07:49:06 +00:00
Jonas Maebe
30bfca91a9 * made application of rounding correction more accurate
(does *not* resolve #14230)

git-svn-id: trunk@13494 -
2009-08-06 20:41:43 +00:00
Jonas Maebe
b2531e9883 * don't "round" 0.0 when converting to a string (mantis #12202)
git-svn-id: trunk@11823 -
2008-09-26 13:28:53 +00:00
Jonas Maebe
ecf4aa7f55 * use rounding correction in str_real based on smallest possible
delta for which 1.0 and 1.0+delta is different, rather than
    some power-of-10 ballpark equivalent (fixes mantis #11308)
  * print the same number of digits for doubles on systems
    which support extended as on those which don't (i.e.,
    one digit less on the former). This solves regressions after
    the previous change and is Delphi-compatible.
  * adapted tests for the previous change

git-svn-id: trunk@11025 -
2008-05-21 16:55:31 +00:00
Jonas Maebe
7433e0ef89 * replaced a trunc() with an int() call (because its result is compared
with a float as well)

git-svn-id: trunk@10375 -
2008-02-21 13:18:56 +00:00
Jonas Maebe
337e53e712 * fixed mantis #10519 (when rounding for the first decimal digit and
it is at the same time the last, append the 0)

git-svn-id: trunk@9623 -
2008-01-03 22:14:54 +00:00
Jonas Maebe
4f23f216f6 * fixed mantis #9695 introduced by the fix in r7959
git-svn-id: trunk@8494 -
2007-09-15 21:15:06 +00:00
Jonas Maebe
1eb1bf4c42 * fixed str(extended(0.005):0:2) and related problems
git-svn-id: trunk@7959 -
2007-07-05 15:25:01 +00:00
Jonas Maebe
e44a9ca4cb * fixed mantis 8434 (wrong precision used in case of |number| < 1,
which when multiplied by 10^x goes from 0.9y to 1.0z, and if a
    specific presision is specified)

git-svn-id: trunk@6692 -
2007-03-01 14:30:55 +00:00
yury
61f0f0b793 * define FPC_DOUBLE_HILO_SWAPPED for ARM CPU if needed to properly handle doubles in RTL.
git-svn-id: trunk@5439 -
2006-11-21 21:24:01 +00:00
Jonas Maebe
117774e006 * fixed web bug #7105
git-svn-id: trunk@5068 -
2006-10-29 19:22:04 +00:00
Jonas Maebe
9a08cdccf0 * several changes of var parameters into out parameters to avoid
useless warnings: code parameter of val(), destination of str(),
    destinations of ansi2wide and wide2ansi

git-svn-id: trunk@2041 -
2005-12-23 22:25:26 +00:00
Jonas Maebe
2cb88de19b * fixed missing digit when printing a double whose significant digits are
all before the floating point on a cpu/fpu supporting maximally double
    precision
  * fixed test in tw1792a for double precision fpu's (they can print one
    digit less for double precision numbers than 80 bit fpu's)

git-svn-id: trunk@1446 -
2005-10-17 20:33:07 +00:00
peter
4ace790492 * remove $Log
git-svn-id: trunk@231 -
2005-06-07 09:47:55 +00:00
fpc
790a4fe2d3 * log and id tags removed
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
peter
b68af1b0e3 * post 2.0.0 fixes from cvs
git-svn-id: trunk@7 -
2005-05-16 20:59:02 +00:00
fpc
50778076c3 initial import
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
olle
d988d8d694 * Fixed typo 2005-05-14 11:54:00 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
peter
3094258825 * removed warnings 2004-05-31 20:25:04 +00:00
florian
72a8ac8dd7 * "improved" behavior of real2str for arm, still needs fixing 2004-03-13 18:47:57 +00:00
florian
5fe2004441 * fixed some arm related real stuff 2004-03-13 18:33:52 +00:00
Jonas Maebe
65cc0f990f * fixed NaN/Inf detection for single/double 2003-12-29 19:19:21 +00:00
peter
bbf9d2f9c6 * currency support
* dropped fixed16/32 support
2003-12-08 17:45:00 +00:00
Jonas Maebe
c8e23c4e58 * fixed web bug #2643 2003-10-26 16:56:44 +00:00
florian
eeca30ca30 * fixed Nan and +Inf string 2003-09-06 17:06:59 +00:00
florian
c9a6908a0f * fixed real2str for -Inf and Inf 2003-09-06 16:48:35 +00:00
Jonas Maebe
4e40e71cbb * moved all loal variables to one block (necessary for ppc until nested
procedures are properly supported)
2003-05-16 23:22:31 +00:00
Jonas Maebe
60183c693c * fixed web bug #2131 2002-10-04 16:41:17 +00:00
peter
01dfac4a4e * old logs removed and tabs fixed 2002-09-07 15:06:34 +00:00
peter
bc74424ab1 * m68k updates merged 2001-07-29 13:49:15 +00:00
peter
69b8e3ad44 * big endian updates (merged) 2001-06-13 18:32:05 +00:00
peter
802acf6940 * m68k updates 2001-04-23 18:25:44 +00:00
michael
650fbb86aa + removed logs 2000-07-13 11:32:24 +00:00
michael
e7aca136a1 + Initial import 2000-07-13 06:29:38 +00:00
Jonas Maebe
ffbedb6ec9 * changed precision for extended back (otherwise strreal2.pp in
tests/test failed)
2000-07-07 18:03:08 +00:00
florian
aa3e0fbe87 * fixed writing of comp and extended: the precision of comp was to little
while it was too high for extended
2000-07-06 21:09:45 +00:00
Jonas Maebe
d9c608a373 + $maxfpuregisters 0 for i386 in systemh (to avoid requiring too much
empty FPU registers for sysstem routines
  * fixed bug in str_real when using 0
  * str_real now doesn't call exp() anymore at runtime, so it should
    require less free FPU registers now (and be slightly faster)
2000-03-26 11:36:28 +00:00
Jonas Maebe
7e63fc9d28 * fixed more bugs due to inexact nature of FPU 2000-03-21 12:00:30 +00:00
Jonas Maebe
df004d997b * fixed rounding bugs with certain formatting parameters in str_real
* fixed tbs0218 so it compares both results only until max precision
2000-03-17 20:20:33 +00:00
Jonas Maebe
02ec1d0d3b * fixed rounding problem when writing out single/double type vars 2000-03-05 09:41:05 +00:00
Jonas Maebe
c535d675f5 * sign was not written in some cases 2000-03-02 07:35:57 +00:00
peter
66ea55dd7c * removed warnings/notes 2000-02-27 14:40:40 +00:00
Jonas Maebe
51bbb51a06 * fix for lost precision because sometimes the correction value was
larger than the number to be corrected
  * incompatibility with TP's output fixed
2000-02-26 18:53:11 +00:00