Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/arch/m68k/fpsp040/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 3 kB image not shown  

Quelle  ssinh.S   Sprache: Sparc

 
|
| ssinh.sa 3.1 12/10/90
|
|       The entry point sSinh computes the hyperbolic sine of
|       an input argument; sSinhd does the same except for denormalized
|       input.
|
|       Input: Double-extended number X in location pointed to
|  by address register a0.
|
|       Output: The value sinh(X) returned in floating-point register Fp0.
|
|       Accuracy and Monotonicity: The returned result is within 3 ulps in
|               64 significant bit, i.e. within 0.5001 ulp to 53 bits if the
|               result is subsequently rounded to double precision. The
|               result is provably monotonic in double precision.
|
|       Speed: The program sSINH takes approximately 280 cycles.
|
|       Algorithm:
|
|       SINH
|       1. If |X| > 16380 log2, go to 3.
|
|       2. (|X| <= 16380 log2) Sinh(X) is obtained by the formulae
|               y = |X|, sgn = sign(X), and z = expm1(Y),
|               sinh(X) = sgn*(1/2)*( z + z/(1+z) ).
|          Exit.
|
|       3. If |X| > 16480 log2, go to 5.
|
|       4. (16380 log2 < |X| <= 16480 log2)
|               sinh(X) = sign(X) * exp(|X|)/2.
|          However, invoking exp(|X|) may cause premature overflow.
|          Thus, we calculate sinh(X) as follows:
|             Y       := |X|
|             sgn     := sign(X)
|             sgnFact := sgn * 2**(16380)
|             Y' := Y - 16381 log2
|             sinh(X) := sgnFact * exp(Y').
|          Exit.
|
|       5. (|X| > 16480 log2) sinh(X) must overflow. Return
|          sign(X)*Huge*Huge to generate overflow and an infinity with
|          the appropriate sign. Huge is the largest finite number in
|          extended format. Exit.
|

|  Copyright (C) Motorola, Inc. 1990
|   All Rights Reserved
|
|       For details on the license for this file, please see the
|       file, README, in this same directory.

|SSINH idnt 2,1 | Motorola 040 Floating Point Software Package

 |section 8

T1: .long 0x40C62D38,0xD3D64634 | ... 16381 LOG2 LEAD
T2: .long 0x3D6F90AE,0xB1E75CC7 | ... 16381 LOG2 TRAIL

 |xref t_frcinx
 |xref t_ovfl
 |xref t_extdnrm
 |xref setox
 |xref setoxm1

 .global ssinhd
ssinhd:
|--SINH(X) = X FOR DENORMALIZED X

 bra t_extdnrm

 .global ssinh
ssinh:
 fmovex (%a0),%fp0 | ...LOAD INPUT

 movel (%a0),%d0
 movew 4(%a0),%d0
 movel %d0,%a1  | save a copy of original (compacted) operand
 andl #0x7FFFFFFF,%d0
 cmpl #0x400CB167,%d0
 bgts SINHBIG

|--THIS IS THE USUAL CASE, |X| < 16380 LOG2
|--Y = |X|, Z = EXPM1(Y), SINH(X) = SIGN(X)*(1/2)*( Z + Z/(1+Z) )

 fabsx %fp0  | ...Y = |X|

 moveml %a1/%d1,-(%sp)
 fmovemx %fp0-%fp0,(%a0)
 clrl %d1
 bsr setoxm1  | ...FP0 IS Z = EXPM1(Y)
 fmovel #0,%fpcr
 moveml (%sp)+,%a1/%d1

 fmovex %fp0,%fp1
 fadds #0x3F800000,%fp1 | ...1+Z
 fmovex %fp0,-(%sp)
 fdivx %fp1,%fp0  | ...Z/(1+Z)
 movel %a1,%d0
 andl #0x80000000,%d0
 orl #0x3F000000,%d0
 faddx (%sp)+,%fp0
 movel %d0,-(%sp)

 fmovel %d1,%fpcr
 fmuls (%sp)+,%fp0 |last fp inst - possible exceptions set

 bra t_frcinx

SINHBIG:
 cmpl #0x400CB2B3,%d0
 bgt t_ovfl
 fabsx %fp0
 fsubd T1(%pc),%fp0 | ...(|X|-16381LOG2_LEAD)
 movel #0,-(%sp)
 movel #0x80000000,-(%sp)
 movel %a1,%d0
 andl #0x80000000,%d0
 orl #0x7FFB0000,%d0
 movel %d0,-(%sp) | ...EXTENDED FMT
 fsubd T2(%pc),%fp0 | ...|X| - 16381 LOG2, ACCURATE

 movel %d1,-(%sp)
 clrl %d1
 fmovemx %fp0-%fp0,(%a0)
 bsr setox
 fmovel (%sp)+,%fpcr

 fmulx (%sp)+,%fp0 |possible exception
 bra t_frcinx

 |end

Messung V0.5
C=89 H=90 G=89

¤ Dauer der Verarbeitung: 0.18 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.