|
HP OpenVMS systems documentation |
Previous | Contents | Index |
The address of the access name table can be obtained from the LIB$GET_ACCNAM routine. Note that file access names are valid for any protected object class.
The number of characters processed is optionally returned. This is useful in error processing. The end position will be the offset to the character that made the protection string invalid. Note that the entire protection string must be valid, or an error is returned.
Several scenarios can cause the protection string to be invalid. The format of the protection string may be invalid, or the access category abbreviations may not be valid with respect to the access name tables.
SS$_NORMAL Routine successfully completed. LIB$_IVARG Required parameter missing or invalid protection string. LIB$_WRONGNUMARG Wrong number of arguments.
The Pause Program Execution routine suspends program execution and returns control to the calling command level.
LIB$PAUSE
OpenVMS usage: cond_value type: longword (unsigned) access: write only mechanism: by value
None.
LIB$PAUSE suspends program execution and returns control to the calling command level. The suspended image may be continued with the CONTINUE command, or it may be terminated with the EXIT or STOP command. In the latter case, the image will not return to this routine.Note that this routine functions only for interactive jobs. If this routine is invoked in batch mode, it has no effect.
SS$_NORMAL Routine successfully completed. LIB$_NOCLI No CLI present. The calling process does not have a CLI or the CLI does not support the request. Note that DCL supports this function in INTERACTIVE mode only.
The Evaluate Polynomials routine (D-floating values) allows higher-level language users to evaluate D-floating value polynomials.
D-floating values are not supported in full precision in native OpenVMS Alpha and I64 programs. They are precise to 56 bits on VAX systems, 53 or 56 bits in translated VAX images, and 53 bits in native OpenVMS Alpha and I64 programs.
LIB$POLYD polynomial-argument ,degree ,coefficient ,floating-point-result
OpenVMS usage: cond_value type: longword (unsigned) access: write only mechanism: by value
polynomial-argument
OpenVMS usage: floating_point type: D_floating access: read only mechanism: by reference
The address of a D-floating number that is the argument for the polynomial.degree
OpenVMS usage: word_signed type: word integer (signed) access: read only mechanism: by reference
The address of a signed word integer that is the highest-numbered nonzero coefficient to participate in the evaluation.If the degree is 0, the result equals C[0]. The range of the degree is 0 to 31.
coefficient
OpenVMS usage: floating_point type: D_floating access: read only mechanism: by reference, array reference
The address of an array of D-floating coefficients. The coefficient of the highest-order term of the polynomial is the lowest-addressed element in the array.floating-point-result
OpenVMS usage: floating_point type: D_floating access: write only mechanism: by reference
The address of a floating-point number that is the result of the calculation. LIB$POLYD writes the address of floating-point-result into a D-floating number.Intermediate multiplications are carried out using extended floating-point fractions (63 bits for POLYD).
LIB$POLYD provides higher-level language users with the capability of evaluating polynomials.The evaluation is carried out by Horner's Method. The result is computed as follows:
result = C[0]+X*(C[1]+X*(C[2]+...X*(C[D])...))In the above result D is the degree of the polynomial and X is the argument.
See the VAX Architecture Reference Manual for the detailed description of POLY.
SS$_NORMAL Routine successfully completed. SS$_FLTOVF Floating overflow. SS$_ROPRAND Reserved operand.
The C example provided in the description of LIB$INSERT_TREE also demonstrates how to use LIB$LOOKUP_TREE. Refer to that example for assistance in using this routine.
The Evaluate Polynomials routine (F-floating values) allows higher-level language users to evaluate F-floating polynomials.
LIB$POLYF polynomial-argument ,degree ,coefficient ,floating-point-result
OpenVMS usage: cond_value type: longword (unsigned) access: write only mechanism: by value
polynomial-argument
OpenVMS usage: floating_point type: F_floating access: read only mechanism: by reference
Argument for the polynomial. The polynomial-argument argument is the address of a floating-point number that contains this argument. The polynomial-argument argument is an F-floating number.degree
OpenVMS usage: word_signed type: word (signed) access: read only mechanism: by reference
Highest-numbered nonzero coefficient to participate in the evaluation. The degree argument is the address of a signed word integer that contains this highest-numbered coefficient.If the degree is 0, the result equals C[0]. The range of the degree is 0 to 31.
coefficient
OpenVMS usage: floating_point type: F_floating access: read only mechanism: by reference, array reference
The address of an array of floating-point coefficients. The coefficient of the highest-order term of the polynomial is the lowest addressed element in the array. The coefficient argument is an array of F-floating numbers.
floating-point-result
OpenVMS usage: floating_point type: F_floating access: write only mechanism: by reference
Result of the calculation. The floating-point-result argument is the address of a floating-point number that contains this result. LIB$POLYF writes the address of floating-point-result into an F-floating number.Intermediate multiplications are carried out using extended floating-point fractions (31 bits for POLYF).
LIB$POLYF provides higher-level language users with the capability of evaluating polynomials.The evaluation is carried out by Horner's Method. The result is computed as follows:
result = C[0]+X*(C[1]+X*(C[2]+...X*(C[D])...))In the above result D is the degree of the polynomial and X is the argument.
SS$_NORMAL Routine successfully completed. SS$_FLTOVF Floating overflow. SS$_ROPRAND Reserved operand.
#1 |
---|
C+ C This Fortran example demonstrates how to use C LIB$POLYF. C- REAL*4 X,COEFF(5),RESULT INTEGER*2 DEG C+ C Compute X^4 + 2*X^3 -X^2 + X - 3 using POLYF. C Let X = 2. C The coefficients needed are as follows: C- DATA COEFF/1.0,2.0,-1.0,1.0,-3.0/ X = 2.0 DEG = 4 ! DEG has word length. C+ C Calculate (2)^4 + 2*(2^3) -2^2 + 2 - 3. C The result should be 27. C- RETURN = LIB$POLYF(X,DEG,COEFF,RESULT) TYPE *,'(2)^4 + 2*(2^3) -2^2 + 2 - 3 = ',RESULT END |
This Fortran example demonstrates how to call LIB$POLYF. The output generated by this program is as follows:
(2)^4 + 2*(2^3) -2^2 + 2 - 3 = 27.00000
#2 |
---|
PROGRAM POLYF(INPUT,OUTPUT); {+} { This Pascal program demonstrates how to use { LIB$POLYF to evaluate a polynomial. {-} TYPE WORD = [WORD] 0..65535; VAR COEFF : ARRAY [0..2] OF REAL := (1.0,2.0,2.0); RESULT : REAL; RETURNED_STATUS : INTEGER; [EXTERNAL] FUNCTION LIB$POLYF( ARG : REAL; DEGREE : WORD; COEFF : [REFERENCE] ARRAY [L..U:INTEGER] OF REAL; VAR RESULT : REAL ) : INTEGER; EXTERNAL; [EXTERNAL] FUNCTION LIB$STOP( CONDITION_STATUS : [IMMEDIATE,UNSAFE] UNSIGNED; FAO_ARGS : [IMMEDIATE,UNSAFE,LIST] UNSIGNED ) : INTEGER; EXTERNAL; BEGIN {+} { Call LIB$POLYF to evaluate 2(X**2) + 2*X + 1. {-} RETURNED_STATUS := LIB$POLYF(1.0,2,COEFF,RESULT); IF NOT ODD(RETURNED_STATUS) THEN LIB$STOP(RETURNED_STATUS); WRITELN('F(1.0) = ',RESULT:5:2); END. |
This example program demonstrates how to call LIB$POLYF from Pascal. The output generated by this Pascal program is as follows:
$ RUN POLYF F(1.0) = 5.00
The Evaluate Polynomials routine (G-floating values) allows higher-level language users to evaluate G-floating value polynomials.
LIB$POLYG polynomial-argument ,degree ,coefficient ,floating-point-result
OpenVMS usage: cond_value type: longword (unsigned) access: write only mechanism: by value
polynomial-argument
OpenVMS usage: floating_point type: G_floating access: read only mechanism: by reference
Argument for the polynomial. The polynomial-argument argument is the address of a floating-point number that contains this argument. The polynomial-argument argument is a G-floating number.degree
OpenVMS usage: word_signed type: word integer (signed) access: read only mechanism: by reference
Highest-numbered nonzero coefficient to participate in the evaluation. The degree argument is the address of a signed word integer that contains this highest-numbered coefficient.If the degree is 0, the result equals C[0]. The range of the degree is 0 to 31.
coefficient
OpenVMS usage: floating_point type: G_floating access: read only mechanism: by reference, array reference
Floating-point coefficients. The coefficient argument is the address of an array of floating-point coefficients. The coefficient of the highest-order term of the polynomial is the lowest addressed element in the array. The coefficient argument is an array of G-floating numbers.
floating-point-result
OpenVMS usage: floating_point type: G_floating access: write only mechanism: by reference
Result of the calculation. The floating-point-result argument is the address of a floating-point number that contains this result. LIB$POLYG writes the address of floating-point-result into a G-floating number.Intermediate multiplications are carried out using extended floating-point fractions (63 bits for POLYG).
LIB$POLYG provides higher-level language users with the capability of evaluating polynomials.
The evaluation is carried out by Horner's Method. The result is computed as follows:
result = C[0]+X*(C[1]+X*(C[2]+...X*(C[D])...)) |
In the above result D is the degree of the polynomial and X is the argument.
SS$_NORMAL Routine successfully completed. SS$_FLTOVF Floating overflow. SS$_ROPRAND Reserved operand.
The Fortran and Pascal examples provided in the description of LIB$POLYF also demonstrate how to use LIB$POLYG. Please refer to those examples for assistance in using this routine.
On OpenVMS VAX systems, the Evaluate Polynomials routine (H-floating values) allows higher-level language users to evaluate H-floating value polynomials.
This routine is not available to native OpenVMS Alpha and I64 programs but is available to translated VAX images.
LIB$POLYH polynomial-argument ,degree ,coefficient ,floating-point-result
OpenVMS usage: cond_value type: longword (unsigned) access: write only mechanism: by value
polynomial-argument
OpenVMS usage: floating_point type: H_floating access: read only mechanism: by reference
Argument for the polynomial. The polynomial-argument argument is the address of a floating-point number that contains this argument. The polynomial-argument argument is an H-floating number.degree
OpenVMS usage: word_signed type: word integer (signed) access: read only mechanism: by reference
Highest-numbered nonzero coefficient to participate in the evaluation. The degree argument is the address of a signed word integer that contains this highest-numbered coefficient.If the degree is 0, the result equals C[0]. The range of the degree is 0 to 31.
coefficient
OpenVMS usage: floating_point type: H_floating access: read only mechanism: by reference, array reference
Floating-point coefficients. The coefficient argument is the address of an array of floating-point coefficients. The coefficient of the highest-order term of the polynomial is the lowest addressed element in the array. The coefficient argument is an array of H-floating numbers.floating-point-result
OpenVMS usage: floating_point type: H_floating access: write only mechanism: by reference
Result of the calculation. The floating-point-result argument is the address of a floating-point number that contains this result. LIB$POLYH writes the address of floating-point-result into an H-floating number.Intermediate multiplications are carried out using extended floating-point fractions (127 bits for POLYH).
LIB$POLYH provides higher-level language users with the capability of evaluating polynomials.The evaluation is carried out by Horner's Method. The result is computed as follows:
result = C[0]+X*(C[1]+X*(C[2]+...X*(C[D])...))In the above result D is the degree of the polynomial and X is the argument.
SS$_NORMAL Routine successfully completed. SS$_FLTOVF Floating overflow. SS$_ROPRAND Reserved operand.
The C example provided in the description of LIB$INSERT_TREE also demonstrates how to use LIB$LOOKUP_TREE. Refer to that example for assistance in using this routine.
The Evaluate Polynomials routine (IEEE S-floating values) allows higher-level language users to evaluate IEEE S-floating polynomials.
LIB$POLYS polynomial-argument ,degree ,coefficient ,floating-point-result
OpenVMS usage: cond_value type: longword (unsigned) access: write only mechanism: by value
polynomial-argument
OpenVMS usage: floating_point type: IEEE S_floating access: read only mechanism: by reference
Argument for the polynomial. The polynomial-argument argument is the address of a floating-point number that contains this argument. The polynomial-argument argument is an IEEE S-floating number.degree
OpenVMS usage: word_signed type: word (signed) access: read only mechanism: by reference
Highest-numbered nonzero coefficient to participate in the evaluation. The degree argument is the address of a signed word integer that contains this highest-numbered coefficient.If the degree is 0, the result equals C[0]. The range of the degree is 0 to 31.
coefficient
OpenVMS usage: floating_point type: IEEE S_floating access: read only mechanism: by reference, array reference
The address of an array of floating-point coefficients. The coefficient of the highest-order term of the polynomial is the lowest addressed element in the array. The coefficient argument is an array of IEEE S-floating numbers.
floating-point-result
OpenVMS usage: floating_point type: IEEE S_floating access: write only mechanism: by reference
Result of the calculation. The floating-point-result argument is the address of a floating-point number that contains this result. LIB$POLYS writes the address of floating-point-result into an IEEE S-floating number.Intermediate multiplications are carried out using extended floating-point fractions (31 bits for POLYS).
LIB$POLYS provides higher-level language users with the capability of evaluating polynomials.The evaluation is carried out by Horner's Method. The result is computed as follows:
result = C[0]+X*(C[1]+X*(C[2]+...X*(C[D])...))In the above result, D is the degree of the polynomial and X is the argument.
SS$_NORMAL Routine successfully completed. SS$_FLTOVF Floating overflow. SS$_ROPRAND Reserved operand.
/* ** This C example demonstrates how to use LIB$POLYS. */ #if !(__IEEE_FLOAT) #error "Compile module with /FLOAT=IEEE_FLOAT" #endif #include <stdio.h> #include <lib$routines.h> main () { float x = 2.0; float result = 0; float coeff[5] = {1.0, 2.0, -1.0, 1.0, -3.0}; short deg = 4; int status; status = lib$polys(&x, °, &coeff, &result); if ((status & 1) != 1) lib$stop(status); printf ("(2)^4 + 2*(2^3) -2^2 + 2 - 3 = %f (27.000000)\n", result); }This C example demonstrates how to call LIB$POLYS. The output generated by this program is as follows:
(2)^4 + 2*(2^3) -2^2 + 2 - 3 = 27.000000 (27.000000)
Previous | Next | Contents | Index |