[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference vaxaxp::vmsnotes

Title:VAX and Alpha VMS
Notice:This is a new VMSnotes, please read note 2.1
Moderator:VAXAXP::BERNARDO
Created:Wed Jan 22 1997
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:703
Total number of notes:3722

154.0. "cabs drem fmod random & remainder missing f Alpha DPML" by CSC32::D_SANFORD () Thu Feb 06 1997 22:09

    OpenVMS Alpha V7.1, DPML (Digital Portable Mathematics Libary)

    OpenVMS Alpha V6.1 documents the routine "drem" (remainder) as being
    part of OpenVMS Alpha; however when you attempt to use it you'll get 
    a LINK warning:

	%LINK-W-NUDFSYMS, 1 undefined symbol:
	%LINK-I-UDFSYM,         MATH$DREM_T

    Is this simply the case that some of these routines just don't exist 
    or there are equivalent routines?  If so, why don't we document this 
    or provide the correct routine name.

    The "Digital Portable Mathematics Library", November 1996, (order
    no AA-PV6VC-TE ) manual documents the OpenVMS Alpha entry-points,
    but some of these routines are not provided.

    As a workaround we are using fmodl() and/OR mth$tmod(), but it would
    great if the documentation were corrected or the routines provided.

    The following routines are missing from SYS$SHARE:DPML$SHR.EXE
    ( cabs, drem, fmod, random, and remainder ):

	MATH$CABS_S
	MATH$CABS_T
	MATH$CABS_X
	MATH$CABS_F
	MATH$CABS_G

	MATH$DREM_S
	MATH$DREM_T
	MATH$DREM_X
	MATH$DREM_F
	MATH$DREM_G

	MATH$FMOD_S
	MATH$FMOD_T
	MATH$FMOD_X
	MATH$FMOD_F
	MATH$FMOD_G

	MATH$RANDOM_S
	MATH$RANDOM_T
	MATH$RANDOM_X
	MATH$RANDOM_F
	MATH$RANDOM_G

	MATH$REMAINDER_S
	MATH$REMAINDER_T
	MATH$REMAINDER_X
	MATH$REMAINDER_F
	MATH$REMAINDER_G

  An example and HELP from OpenVMS Alpha V6.2 is included below.

  Regards, Drew Sanford



/*	CC/FLOAT=IEEE sample 	*/
/*	LINK sample             */
#include <stdio.h>

static double a;

main()
{
  double math$drem_t();

  a = math$drem_t(&5.0, &3.0);
  printf("%f\n", a);
}


$ HELP DPML drem

DPML

  drem()


       Interface

         F_TYPE drem (F_TYPE x, F_TYPE y)
     

    Description
       drem() returns the remainder r = x-n*y, where n = rint(x/y).
       Additionally, if |n-x/y|=1/2, then n is even. Consequently, the
       remainder is computed exactly, and |r| is less than or equal to
       |y|/2. drem() is equivalent to the function remainder().

       IEEE Std 754 defines drem(x,0) and drem(infinity,y) to be invalid
       operations that produce a NaN.


                              Entry-Point Names

       Generic
       Function   Data Type                  DEC OSF/1
       Name       Required    OpenVMS AXP    AXP

       drem       S_FLOAT     math$drem_s    dremf
                  T_FLOAT     math$drem_t    drem
                  X_FLOAT     math$drem_x
                  F_FLOAT     math$drem_f
                  G_FLOAT     math$drem_g
     

    Exceptions

       Exceptional Argument   Routine Behavior

       y = 0                  Invalid argument
       x = infinity           Invalid argument
     


T.RTitleUserPersonal
Name
DateLines
154.1QUARK::LIONELFree advice is worth every centFri Feb 07 1997 11:1213
[I forwarded this to Bob Hanek - here's his reply - Steve]

This is a documentation error.  Those routines have never been part of
the VMS libary.  There are routines with other names that perform the 
appropriate operation:

	MATH$CABS_<t>      ==> math$hypot_<t>
	MATH$DREM_<t>      ==> math$rem_<t>
	MATH$FMOD_<t>      ==> math$mod_<t>
	MATH$RANDOM_<t>    ==> math$random_L_<s or f >
	MATH$REMAINDER_<t> ==> math$rem_<t>

-Bob
154.2CSC32::D_SANFORDFri Feb 07 1997 17:061
    Thank you Steve, we were going crazy looking for them.  -drew
154.3Where are math routines (DPML) cabs, drem, fmod, random and remainderCSC32::D_SANFORDWed Feb 19 1997 12:0091
    FYI - This is an article we wrote for the CSC until the documentation
    is updated, no IPMT case was raised.  -drew
    
    
{Draft} Where are math routines (DPML) cabs, drem, fmod, random and remainder

     Any party granted access to the following copyrighted information
     (protected under Federal Copyright Laws), pursuant to a duly executed
     Digital Service Agreement may, under the terms of such agreement copy
     all or selected portions of this information for internal use and
     distribution only. No other copying or distribution for any other
     purpose is authorized.
Copyright (c) Digital Equipment Corporation 1997.  All rights reserved.

TITLE:  Where are math routines (DPML) cabs, drem, fmod, random and remainder

Copyright (c) Digital Equipment Corporation 1996. All rights reserved.

OP/SYS:     OpenVMS Alpha Version(s) 6.1, 6.2, 7.0, 7.1

COMPONENT:  Digital Portable Mathematics Library (DPML)

SOURCE:     Digital Equipment Corporation



OVERVIEW:

The Digital Portable Mathematics Library manual contains a
documentation error.  Five generic math routines provide an
incorrect entry-point name for OpenVMS Alpha.


INFORMATION:

These routines were not provided because other routines already
performed the appropriate operation.  Refer to the list below
for the correct entry-point for OpenVMS Alpha.

  DPML routine           Use routine

  cabs - Complex Absolute Value

  math$cabs_s            math$hypot_s
  math$cabs_t            math$hypot_t
  math$cabs_x            math$hypot_x
  math$cabs_f            math$hypot_f
  math$cabs_g            math$hypot_g


  drem - Remainder

  math$drem_s            math$rem_s
  math$drem_t            math$rem_t
  math$drem_x            math$rem_x
  math$drem_f            math$rem_f
  math$drem_g            math$rem_g


  fmod - Modulo Remainder

  math$fmod_s            math$mod_s
  math$fmod_t            math$mod_t
  math$fmod_x            math$mod_x
  math$fmod_f            math$mod_f
  math$fmod_g            math$mod_g


  random - Random Number Generator, Uniformly Distributed

  math$random_s          math$random_L_s
  math$random_t          none
  math$random_x          none
  math$random_f          math$random_L_f
  math$random_g          none


  remainder - Remainder

  math$remainder_s       math$rem_s
  math$remainder_t       math$rem_t
  math$remainder_x       math$rem_x
  math$remainder_f       math$rem_f
  math$remainder_g       math$rem_g


REFERENCES:

"Digital Portable Mathematics Library", November 1996, (AA-PV6VC-TE),
Appendix B.