X-Git-Url: http://git.maemo.org/git/?p=opencv;a=blobdiff_plain;f=apps%2Fcvenv%2FEiC%2FstdClib%2Feicfftoa.c;fp=apps%2Fcvenv%2FEiC%2FstdClib%2Feicfftoa.c;h=0000000000000000000000000000000000000000;hp=778cf9b54f3d3d890f79193f1da903f4eba75431;hb=e4c14cdbdf2fe805e79cd96ded236f57e7b89060;hpb=454138ff8a20f6edb9b65a910101403d8b520643 diff --git a/apps/cvenv/EiC/stdClib/eicfftoa.c b/apps/cvenv/EiC/stdClib/eicfftoa.c deleted file mode 100644 index 778cf9b..0000000 --- a/apps/cvenv/EiC/stdClib/eicfftoa.c +++ /dev/null @@ -1,154 +0,0 @@ -/* eicfftoa.c - * - * (C) Copyright Dec 29 1995, Edmond J. Breen. - * ALL RIGHTS RESERVED. - * This code may be copied for personal, non-profit use only. - * - */ - - - -/*#define DBL_MIN_EXP -100 */ - -#include -#include -#include - -#include "stdliblocal.h" - -char *fftoa(double d, char *str, int p, char type, int trunc) -{ - /* - * Convert a floating-point number into a - * formatted 'f','e' or 'E' type string. - * (c) Edmond J.Breen, March 1995. - * where: 'p' represents the precision - * i.e. the number of digits - * that will be placed after - * the decimal point. - * A precision of 0 suppresses - * the decimal point. - * 'type' is either 'f', 'e' or 'E'. - * 'f' -> [-]mmm.dddd - * 'e' -> [-]m.dddde+xx - * | [-]m.dddde-xx - * 'E' -> [-]m.ddddE+xx - * | [-]m.ddddE-xx - * 'trunc' if trunc != 0 then trailing - * zeros will be removed. - * i.e. 'g' or 'G' format. - */ - double M; - int i, j, width, spt, dec, prec; - static char *s; - - prec = p; - i = 0; - if (d < 0) - str[0] = '-', s = &str[1], d = -d; - else - s = str; - if (d >= 1) { /* collect integer part */ - int k, c; - double D = floor(d); - d -= D; - do { - j = fmod(D,10.0); - s[i++] = j + '0'; - D -= j; - } while ((D /= 10) >= 1); - /* now reverse the string */ - for (k = i, j = 0, k--; j < k; j++, k--) { - c = s[j]; - s[j] = s[k]; - s[k] = c; - } - } - dec = i; - if (!dec) { /* check for numbers less than 1 */ - if (type != 'f') { /* assume 'e' or 'E' format */ - if (d != 0) { /* d == d might be a safety check? */ - while ((d *= 10) < 1 && dec > DBL_MIN_EXP) - --dec; - --dec; - } - if (d >= 1) - prec++, d /= 10; - } else - s[i++] = '0'; - } - if (dec < 0) - width = prec; - else if (type == 'f') - width = prec + (dec > 0 ? dec : 1); - else - width = prec + 1; - - M = DBL_EPSILON/(FLT_RADIX*2.0); /* precision value */ - while(1) { /* now collect fraction */ - d *= 10; - j = (int) d; - d -= j; - M *=10; - if((i < width) && (d >= M && d <= (1-M))) - s[i++] = (char) j + '0'; - else - break; - } - if(d>=0.5) - j++; - s[i++] = (char) j + '0'; - while(i<=width) - s[i++] = '0'; - - /* Have to round see ANSI176,13.9.5.2 */ - if (!strround(s, width + 1)) /* watch for over flow */ - s[0] = '1', width++, dec++; - - if (p != 0) { /* add in decimal point */ - if (type == 'f') { - if (dec > 0) - spt = dec; - else - spt = 1; - } else - spt = 1; - for (i = width; i > spt; i--) - s[i] = s[i - 1]; - s[spt] = '.'; - } else - width--; - - if (trunc) { /* remove trailing zeros */ - while (width && s[width] == '0') - width--; - if (s[width] == '.') - width--; - } - if (type != 'f') { /* add in exponent */ - s[++width] = type; - if (dec >= 0) { - s[++width] = '+'; - if (dec != 0) - dec = dec - 1; - if (dec < 10) - s[++width] = '0'; - } else if (dec < 0) { - s[++width] = '-'; - if (dec > -10) - s[++width] = '0'; - dec = -dec; - } - itoa(dec, &s[++width], 10); - } else - s[width + 1] = 0; - return str; -} - - - - - - - -