Browse Source

src/libespeak-ng: Replace ieee80.c by a free software implementation

https://github.com/espeak-ng/espeak-ng/issues/1072

Signed-off-by: Ulrich Müller <[email protected]>
master
Ulrich Müller 3 years ago
parent
commit
c7eb52fe14
7 changed files with 60 additions and 1049 deletions
  1. 1
    0
      CHANGELOG.md
  2. 0
    17
      COPYING.IEEE
  3. 1
    3
      Makefile.am
  4. 0
    7
      README.md
  5. 56
    958
      src/libespeak-ng/ieee80.c
  6. 1
    63
      src/libespeak-ng/ieee80.h
  7. 1
    1
      src/libespeak-ng/spect.c

+ 1
- 0
CHANGELOG.md View File

@@ -23,6 +23,7 @@ The espeak-ng project is a fork of the espeak project.
Use cmn-latn-pinyin for interpreting latin characters as pinyin
* Update list of voice varants for Android application
* Add Chromium extension (guest271314)
* Replace `ieee80.c` by a free software implementation (Ulrich Müller)

bug fixes:
* Fix reading malformed SSML (Christopher Brannon)

+ 0
- 17
COPYING.IEEE View File

@@ -1,17 +0,0 @@
Source: http://www.realitypixels.com/turk/opensource/

Open Source Repository

courtesy of
Ken Turkowski

The source code available from this page may be freely downloaded and used in
any applications for any purpose, as long as the code is used in its entirety
and the copyright notice and warranty information is retained.

If you make any improvements to this software, you should provide me with said
improvements.

If any of this code is incorporated into a commercial product, you should
notify me of this by email, and provide me with a complimentary copy of said
product. :-)

+ 1
- 3
Makefile.am View File

@@ -15,11 +15,9 @@ SHARED_VERSION=2:51:1 # = *.so.1.1.51

MKDIR=mkdir -p

# -Wno-endif-labels : Needed to prevent warnings in ieee80.c.
AM_CFLAGS = \
-Isrc/include -Isrc/include/compat -I$(srcdir)/src/speechPlayer/include -I$(srcdir)/src/ucd-tools/src/include \
-D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112L \
-Wno-endif-labels
-D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112L

EXTRA_DIST=
CLEANFILES = dictsource/ru_listx dictsource/cmn_listx dictsource/yue_listx

+ 0
- 7
README.md View File

@@ -130,13 +130,6 @@ the 1.24.02 source commit.
eSpeak NG Text-to-Speech is released under the [GPL version 3](COPYING) or
later license.

The `ieee80.c` implementation is taken directly from
[ToFromIEEE.c.txt](http://www.realitypixels.com/turk/opensource/ToFromIEEE.c.txt)
which has been made available for use in Open Source applications per the
[license statement](COPYING.IEEE) on http://www.realitypixels.com/turk/opensource/.
The only modifications made to the code is to comment out the `TEST_FP` define
to make it useable in the eSpeak NG library, and to fix compiler warnings.

The `getopt.c` compatibility implementation for getopt support on Windows is
taken from the NetBSD `getopt_long` implementation, which is licensed under a
[2-clause BSD](COPYING.BSD2) license.

+ 56
- 958
src/libespeak-ng/ieee80.c
File diff suppressed because it is too large
View File


+ 1
- 63
src/libespeak-ng/ieee80.h View File

@@ -1,63 +1 @@
/* Copyright (C) 1989-1991 Apple Computer, Inc.
*
* All rights reserved.
*
* Warranty Information
* Even though Apple has reviewed this software, Apple makes no warranty
* or representation, either express or implied, with respect to this
* software, its quality, accuracy, merchantability, or fitness for a
* particular purpose. As a result, this software is provided "as is,"
* and you, its user, are assuming the entire risk as to its quality
* and accuracy.
*
* This code may be used and freely distributed as long as it includes
* this copyright notice and the above warranty information.
*
* Machine-independent I/O routines for IEEE floating-point numbers.
*
* NaN's and infinities are converted to HUGE_VAL or HUGE, which
* happens to be infinity on IEEE machines. Unfortunately, it is
* impossible to preserve NaN's in a machine-independent way.
* Infinities are, however, preserved on IEEE machines.
*
* These routines have been tested on the following machines:
* Apple Macintosh, MPW 3.1 C compiler
* Apple Macintosh, THINK C compiler
* Silicon Graphics IRIS, MIPS compiler
* Cray X/MP and Y/MP
* Digital Equipment VAX
* Sequent Balance (Multiprocesor 386)
* NeXT
*
*
* Implemented by Malcolm Slaney and Ken Turkowski.
*
* Malcolm Slaney contributions during 1988-1990 include big- and little-
* endian file I/O, conversion to and from Motorola's extended 80-bit
* floating-point format, and conversions to and from IEEE single-
* precision floating-point format.
*
* In 1991, Ken Turkowski implemented the conversions to and from
* IEEE double-precision format, added more precision to the extended
* conversions, and accommodated conversions involving +/- infinity,
* NaN's, and denormalized numbers.
*/

#ifndef IEEE_H
#define IEEE_H

#ifndef applec
typedef double defdouble;
#else applec
typedef long double defdouble;
#endif applec

defdouble ConvertFromIeeeSingle( char *bytes);
defdouble ConvertFromIeeeDouble( char *bytes);
defdouble ConvertFromIeeeExtended(char *bytes);

void ConvertToIeeeSingle( defdouble num, char *bytes);
void ConvertToIeeeDouble( defdouble num, char *bytes);
void ConvertToIeeeExtended(defdouble num, char *bytes);

#endif
double ieee_extended_to_double(const unsigned char *);

+ 1
- 1
src/libespeak-ng/spect.c View File

@@ -49,7 +49,7 @@ static double read_double(FILE *stream)
{
unsigned char bytes[10];
fread(bytes, sizeof(char), 10, stream);
return ConvertFromIeeeExtended((char *)bytes);
return ieee_extended_to_double(bytes);
}

float polint(float xa[], float ya[], int n, float x)

Loading…
Cancel
Save