Add graph references
This commit is contained in:
+204
@@ -0,0 +1,204 @@
|
||||
/* -- translated by f2c (version 20240504).
|
||||
You must link the resulting object file with libf2c:
|
||||
on Microsoft Windows system, link with libf2c.lib;
|
||||
on Linux or Unix systems, link with .../path/to/libf2c.a -lm
|
||||
or, if you install libf2c.a in a standard place, with -lf2c -lm
|
||||
-- in that order, at the end of the command line, as in
|
||||
cc *.o -lf2c -lm
|
||||
Source for libf2c is in /netlib/f2c/libf2c.zip, e.g.,
|
||||
|
||||
http://www.netlib.org/f2c/libf2c.zip
|
||||
*/
|
||||
|
||||
#include "f2c.h"
|
||||
|
||||
/* Table of constant values */
|
||||
|
||||
static doublereal c_b2 = 0.;
|
||||
|
||||
/* > \brief \b DLAMCH
|
||||
|
||||
=========== DOCUMENTATION ===========
|
||||
|
||||
Online html documentation available at
|
||||
http://www.netlib.org/lapack/explore-html/
|
||||
|
||||
Definition:
|
||||
===========
|
||||
|
||||
DOUBLE PRECISION FUNCTION DLAMCH( CMACH )
|
||||
|
||||
|
||||
> \par Purpose:
|
||||
=============
|
||||
>
|
||||
> \verbatim
|
||||
>
|
||||
> DLAMCH determines double precision machine parameters.
|
||||
> \endverbatim
|
||||
|
||||
Arguments:
|
||||
==========
|
||||
|
||||
> \param[in] CMACH
|
||||
> \verbatim
|
||||
> Specifies the value to be returned by DLAMCH:
|
||||
> = 'E' or 'e', DLAMCH := eps
|
||||
> = 'S' or 's , DLAMCH := sfmin
|
||||
> = 'B' or 'b', DLAMCH := base
|
||||
> = 'P' or 'p', DLAMCH := eps*base
|
||||
> = 'N' or 'n', DLAMCH := t
|
||||
> = 'R' or 'r', DLAMCH := rnd
|
||||
> = 'M' or 'm', DLAMCH := emin
|
||||
> = 'U' or 'u', DLAMCH := rmin
|
||||
> = 'L' or 'l', DLAMCH := emax
|
||||
> = 'O' or 'o', DLAMCH := rmax
|
||||
> where
|
||||
> eps = relative machine precision
|
||||
> sfmin = safe minimum, such that 1/sfmin does not overflow
|
||||
> base = base of the machine
|
||||
> prec = eps*base
|
||||
> t = number of (base) digits in the mantissa
|
||||
> rnd = 1.0 when rounding occurs in addition, 0.0 otherwise
|
||||
> emin = minimum exponent before (gradual) underflow
|
||||
> rmin = underflow threshold - base**(emin-1)
|
||||
> emax = largest exponent before overflow
|
||||
> rmax = overflow threshold - (base**emax)*(1-eps)
|
||||
> \endverbatim
|
||||
|
||||
Authors:
|
||||
========
|
||||
|
||||
> \author Univ. of Tennessee
|
||||
> \author Univ. of California Berkeley
|
||||
> \author Univ. of Colorado Denver
|
||||
> \author NAG Ltd.
|
||||
|
||||
> \date November 2011
|
||||
|
||||
> \ingroup auxOTHERauxiliary
|
||||
|
||||
===================================================================== */
|
||||
doublereal igraphdlamch_(char *cmach)
|
||||
{
|
||||
/* System generated locals */
|
||||
doublereal ret_val;
|
||||
|
||||
/* Local variables */
|
||||
extern doublereal radixdbl_(doublereal *), digitsdbl_(doublereal *),
|
||||
epsilondbl_(doublereal *);
|
||||
doublereal rnd, eps, rmach;
|
||||
extern logical igraphlsame_(char *, char *);
|
||||
doublereal small, sfmin;
|
||||
extern integer minexponentdbl_(doublereal *), maxexponentdbl_(doublereal *
|
||||
);
|
||||
extern doublereal hugedbl_(doublereal *), tinydbl_(doublereal *);
|
||||
|
||||
|
||||
/* -- LAPACK auxiliary routine (version 3.4.0) --
|
||||
-- LAPACK is a software package provided by Univ. of Tennessee, --
|
||||
-- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||
November 2011
|
||||
|
||||
|
||||
|
||||
=====================================================================
|
||||
|
||||
|
||||
|
||||
Assume rounding, not chopping. Always. */
|
||||
|
||||
rnd = 1.;
|
||||
|
||||
if (1. == rnd) {
|
||||
eps = epsilondbl_(&c_b2) * .5f;
|
||||
} else {
|
||||
eps = epsilondbl_(&c_b2);
|
||||
}
|
||||
|
||||
if (igraphlsame_(cmach, "E")) {
|
||||
rmach = eps;
|
||||
} else if (igraphlsame_(cmach, "S")) {
|
||||
sfmin = tinydbl_(&c_b2);
|
||||
small = 1. / hugedbl_(&c_b2);
|
||||
if (small >= sfmin) {
|
||||
|
||||
/* Use SMALL plus a bit, to avoid the possibility of rounding
|
||||
causing overflow when computing 1/sfmin. */
|
||||
|
||||
sfmin = small * (eps + 1.);
|
||||
}
|
||||
rmach = sfmin;
|
||||
} else if (igraphlsame_(cmach, "B")) {
|
||||
rmach = radixdbl_(&c_b2);
|
||||
} else if (igraphlsame_(cmach, "P")) {
|
||||
rmach = eps * radixdbl_(&c_b2);
|
||||
} else if (igraphlsame_(cmach, "N")) {
|
||||
rmach = digitsdbl_(&c_b2);
|
||||
} else if (igraphlsame_(cmach, "R")) {
|
||||
rmach = rnd;
|
||||
} else if (igraphlsame_(cmach, "M")) {
|
||||
rmach = (doublereal) minexponentdbl_(&c_b2);
|
||||
} else if (igraphlsame_(cmach, "U")) {
|
||||
rmach = tinydbl_(&c_b2);
|
||||
} else if (igraphlsame_(cmach, "L")) {
|
||||
rmach = (doublereal) maxexponentdbl_(&c_b2);
|
||||
} else if (igraphlsame_(cmach, "O")) {
|
||||
rmach = hugedbl_(&c_b2);
|
||||
} else {
|
||||
rmach = 0.;
|
||||
}
|
||||
|
||||
ret_val = rmach;
|
||||
return ret_val;
|
||||
|
||||
/* End of DLAMCH */
|
||||
|
||||
} /* igraphdlamch_
|
||||
|
||||
***********************************************************************
|
||||
> \brief \b DLAMC3
|
||||
> \details
|
||||
> \b Purpose:
|
||||
> \verbatim
|
||||
> DLAMC3 is intended to force A and B to be stored prior to doing
|
||||
> the addition of A and B , for use in situations where optimizers
|
||||
> might hold one of these in a register.
|
||||
> \endverbatim
|
||||
> \author LAPACK is a software package provided by Univ. of Tennessee, Univ. of California Berkeley, Univ.
|
||||
of Colorado Denver and NAG Ltd..
|
||||
> \date November 2011
|
||||
> \ingroup auxOTHERauxiliary
|
||||
>
|
||||
> \param[in] A
|
||||
> \verbatim
|
||||
> A is a DOUBLE PRECISION
|
||||
> \endverbatim
|
||||
>
|
||||
> \param[in] B
|
||||
> \verbatim
|
||||
> B is a DOUBLE PRECISION
|
||||
> The values A and B.
|
||||
> \endverbatim
|
||||
> */
|
||||
doublereal igraphdlamc3_(doublereal *a, doublereal *b)
|
||||
{
|
||||
/* System generated locals */
|
||||
doublereal ret_val;
|
||||
|
||||
|
||||
/* -- LAPACK auxiliary routine (version 3.4.0) --
|
||||
Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
|
||||
November 2010
|
||||
|
||||
===================================================================== */
|
||||
|
||||
|
||||
ret_val = *a + *b;
|
||||
|
||||
return ret_val;
|
||||
|
||||
/* End of DLAMC3 */
|
||||
|
||||
} /* igraphdlamc3_ */
|
||||
|
||||
Reference in New Issue
Block a user