123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- /* dlag2s.f -- translated by f2c (version 20061008).
- 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"
- #include "blaswrap.h"
- /* Subroutine */ int _starpu_dlag2s_(integer *m, integer *n, doublereal *a, integer *
- lda, real *sa, integer *ldsa, integer *info)
- {
- /* System generated locals */
- integer sa_dim1, sa_offset, a_dim1, a_offset, i__1, i__2;
- /* Local variables */
- integer i__, j;
- doublereal rmax;
- extern doublereal _starpu_slamch_(char *);
- /* -- LAPACK PROTOTYPE auxiliary routine (version 3.1.2) -- */
- /* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. */
- /* August 2007 */
- /* .. */
- /* .. Scalar Arguments .. */
- /* .. */
- /* .. Array Arguments .. */
- /* .. */
- /* Purpose */
- /* ======= */
- /* DLAG2S converts a DOUBLE PRECISION matrix, SA, to a SINGLE */
- /* PRECISION matrix, A. */
- /* RMAX is the overflow for the SINGLE PRECISION arithmetic */
- /* DLAG2S checks that all the entries of A are between -RMAX and */
- /* RMAX. If not the convertion is aborted and a flag is raised. */
- /* This is an auxiliary routine so there is no argument checking. */
- /* Arguments */
- /* ========= */
- /* M (input) INTEGER */
- /* The number of lines of the matrix A. M >= 0. */
- /* N (input) INTEGER */
- /* The number of columns of the matrix A. N >= 0. */
- /* A (input) DOUBLE PRECISION array, dimension (LDA,N) */
- /* On entry, the M-by-N coefficient matrix A. */
- /* LDA (input) INTEGER */
- /* The leading dimension of the array A. LDA >= max(1,M). */
- /* SA (output) REAL array, dimension (LDSA,N) */
- /* On exit, if INFO=0, the M-by-N coefficient matrix SA; if */
- /* INFO>0, the content of SA is unspecified. */
- /* LDSA (input) INTEGER */
- /* The leading dimension of the array SA. LDSA >= max(1,M). */
- /* INFO (output) INTEGER */
- /* = 0: successful exit. */
- /* = 1: an entry of the matrix A is greater than the SINGLE */
- /* PRECISION overflow threshold, in this case, the content */
- /* of SA in exit is unspecified. */
- /* ========= */
- /* .. Local Scalars .. */
- /* .. */
- /* .. External Functions .. */
- /* .. */
- /* .. Executable Statements .. */
- /* Parameter adjustments */
- a_dim1 = *lda;
- a_offset = 1 + a_dim1;
- a -= a_offset;
- sa_dim1 = *ldsa;
- sa_offset = 1 + sa_dim1;
- sa -= sa_offset;
- /* Function Body */
- rmax = _starpu_slamch_("O");
- i__1 = *n;
- for (j = 1; j <= i__1; ++j) {
- i__2 = *m;
- for (i__ = 1; i__ <= i__2; ++i__) {
- if (a[i__ + j * a_dim1] < -rmax || a[i__ + j * a_dim1] > rmax) {
- *info = 1;
- goto L30;
- }
- sa[i__ + j * sa_dim1] = a[i__ + j * a_dim1];
- /* L10: */
- }
- /* L20: */
- }
- *info = 0;
- L30:
- return 0;
- /* End of DLAG2S */
- } /* _starpu_dlag2s_ */
|