URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gfortran.dg/] [specifics_1.f90] - Rev 302
Compare with Previous | Blame | View Log
! Program to test intrinsic functions as actual arguments!! Copied from gfortran.fortran-torture/execute/specifics.f90! Please keep them in sync!! It is run here with -ff2c option!! { dg-do run }! { dg-options "-ff2c" }! Program to test intrinsic functions as actual argumentssubroutine test_c(fn, val, res)complex fncomplex val, resif (diff(fn(val),res)) call abortcontainsfunction diff(a,b)complex a,blogical diffdiff = (abs(a - b) .gt. 0.00001)end functionend subroutinesubroutine test_z(fn, val, res)double complex fndouble complex val, resif (diff(fn(val),res)) call abortcontainsfunction diff(a,b)double complex a,blogical diffdiff = (abs(a - b) .gt. 0.00001)end functionend subroutinesubroutine test_cabs(fn, val, res)real fn, rescomplex valif (diff(fn(val),res)) call abortcontainsfunction diff(a,b)real a,blogical diffdiff = (abs(a - b) .gt. 0.00001)end functionend subroutinesubroutine test_cdabs(fn, val, res)double precision fn, resdouble complex valif (diff(fn(val),res)) call abortcontainsfunction diff(a,b)double precision a,blogical diffdiff = (abs(a - b) .gt. 0.00001)end functionend subroutinesubroutine test_r(fn, val, res)real fnreal val, resif (diff(fn(val), res)) call abortcontainsfunction diff(a, b)real a, blogical diffdiff = (abs(a - b) .gt. 0.00001)end functionend subroutinesubroutine test_d(fn, val, res)double precision fndouble precision val, resif (diff(fn(val), res)) call abortcontainsfunction diff(a, b)double precision a, blogical diffdiff = (abs(a - b) .gt. 0.00001d0)end functionend subroutinesubroutine test_r2(fn, val1, val2, res)real fnreal val1, val2, resif (diff(fn(val1, val2), res)) call abortcontainsfunction diff(a, b)real a, blogical diffdiff = (abs(a - b) .gt. 0.00001)end functionend subroutinesubroutine test_d2(fn, val1, val2, res)double precision fndouble precision val1, val2, resif (diff(fn(val1, val2), res)) call abortcontainsfunction diff(a, b)double precision a, blogical diffdiff = (abs(a - b) .gt. 0.00001d0)end functionend subroutinesubroutine test_dprod(fn)double precision fnif (abs (fn (2.0, 3.0) - 6d0) .gt. 0.00001) call abortend subroutinesubroutine test_nint(fn,val,res)integer fn, resreal valif (res .ne. fn(val)) call abortend subroutinesubroutine test_idnint(fn,val,res)integer fn, resdouble precision valif (res .ne. fn(val)) call abortend subroutinesubroutine test_idim(fn,val1,val2,res)integer fn, res, val1, val2if (res .ne. fn(val1,val2)) call abortend subroutinesubroutine test_iabs(fn,val,res)integer fn, res, valif (res .ne. fn(val)) call abortend subroutinesubroutine test_len(fn,val,res)integer fn, rescharacter(len=*) valif (res .ne. fn(val)) call abortend subroutinesubroutine test_index(fn,val1,val2,res)integer fn, rescharacter(len=*) val1, val2if (fn(val1,val2) .ne. res) call abortend subroutineprogram specificsintrinsic absintrinsic aintintrinsic anintintrinsic acosintrinsic acoshintrinsic asinintrinsic asinhintrinsic atanintrinsic atanhintrinsic cosintrinsic sinintrinsic tanintrinsic coshintrinsic sinhintrinsic tanhintrinsic alogintrinsic alog10intrinsic expintrinsic signintrinsic isignintrinsic amodintrinsic dabsintrinsic dintintrinsic dnintintrinsic dacosintrinsic dacoshintrinsic dasinintrinsic dasinhintrinsic datanintrinsic datanhintrinsic dcosintrinsic dsinintrinsic dtanintrinsic dcoshintrinsic dsinhintrinsic dtanhintrinsic dlogintrinsic dlog10intrinsic dexpintrinsic dsignintrinsic dmodintrinsic conjgintrinsic ccosintrinsic cexpintrinsic clogintrinsic csinintrinsic csqrtintrinsic dconjgintrinsic cdcosintrinsic cdexpintrinsic cdlogintrinsic cdsinintrinsic cdsqrtintrinsic zcosintrinsic zexpintrinsic zlogintrinsic zsinintrinsic zsqrtintrinsic cabsintrinsic cdabsintrinsic zabsintrinsic dprodintrinsic nintintrinsic idnintintrinsic dimintrinsic ddimintrinsic idimintrinsic iabsintrinsic modintrinsic lenintrinsic indexintrinsic aimagintrinsic dimagcall test_r (abs, -1.0, abs(-1.0))call test_r (aint, 1.7, aint(1.7))call test_r (anint, 1.7, anint(1.7))call test_r (acos, 0.5, acos(0.5))call test_r (acosh, 1.5, acosh(1.5))call test_r (asin, 0.5, asin(0.5))call test_r (asinh, 0.5, asinh(0.5))call test_r (atan, 0.5, atan(0.5))call test_r (atanh, 0.5, atanh(0.5))call test_r (cos, 1.0, cos(1.0))call test_r (sin, 1.0, sin(1.0))call test_r (tan, 1.0, tan(1.0))call test_r (cosh, 1.0, cosh(1.0))call test_r (sinh, 1.0, sinh(1.0))call test_r (tanh, 1.0, tanh(1.0))call test_r (alog, 2.0, alog(2.0))call test_r (alog10, 2.0, alog10(2.0))call test_r (exp, 1.0, exp(1.0))call test_r2 (sign, 1.0, -2.0, sign(1.0, -2.0))call test_r2 (amod, 3.5, 2.0, amod(3.5, 2.0))call test_d (dabs, -1d0, abs(-1d0))call test_d (dint, 1.7d0, 1d0)call test_d (dnint, 1.7d0, 2d0)call test_d (dacos, 0.5d0, dacos(0.5d0))call test_d (dacosh, 1.5d0, dacosh(1.5d0))call test_d (dasin, 0.5d0, dasin(0.5d0))call test_d (dasinh, 0.5d0, dasinh(0.5d0))call test_d (datan, 0.5d0, datan(0.5d0))call test_d (datanh, 0.5d0, datanh(0.5d0))call test_d (dcos, 1d0, dcos(1d0))call test_d (dsin, 1d0, dsin(1d0))call test_d (dtan, 1d0, dtan(1d0))call test_d (dcosh, 1d0, dcosh(1d0))call test_d (dsinh, 1d0, dsinh(1d0))call test_d (dtanh, 1d0, dtanh(1d0))call test_d (dlog, 2d0, dlog(2d0))call test_d (dlog10, 2d0, dlog10(2d0))call test_d (dexp, 1d0, dexp(1d0))call test_d2 (dsign, 1d0, -2d0, sign(1d0, -2d0))call test_d2 (dmod, 3.5d0, 2d0, dmod(3.5d0, 2d0))call test_dprod (dprod)call test_c (conjg, (1.2,-4.), conjg((1.2,-4.)))call test_c (ccos, (1.2,-4.), ccos((1.2,-4.)))call test_c (cexp, (1.2,-4.), cexp((1.2,-4.)))call test_c (clog, (1.2,-4.), clog((1.2,-4.)))call test_c (csin, (1.2,-4.), csin((1.2,-4.)))call test_c (csqrt, (1.2,-4.), csqrt((1.2,-4.)))call test_z (dconjg, (1.2d0,-4.d0), dconjg((1.2d0,-4.d0)))call test_z (cdcos, (1.2d0,-4.d0), cdcos((1.2d0,-4.d0)))call test_z (zcos, (1.2d0,-4.d0), zcos((1.2d0,-4.d0)))call test_z (cdexp, (1.2d0,-4.d0), cdexp((1.2d0,-4.d0)))call test_z (zexp, (1.2d0,-4.d0), zexp((1.2d0,-4.d0)))call test_z (cdlog, (1.2d0,-4.d0), cdlog((1.2d0,-4.d0)))call test_z (zlog, (1.2d0,-4.d0), zlog((1.2d0,-4.d0)))call test_z (cdsin, (1.2d0,-4.d0), cdsin((1.2d0,-4.d0)))call test_z (zsin, (1.2d0,-4.d0), zsin((1.2d0,-4.d0)))call test_z (cdsqrt, (1.2d0,-4.d0), cdsqrt((1.2d0,-4.d0)))call test_z (zsqrt, (1.2d0,-4.d0), zsqrt((1.2d0,-4.d0)))call test_cabs (cabs, (1.2,-4.), cabs((1.2,-4.)))call test_cdabs (cdabs, (1.2d0,-4.d0), cdabs((1.2d0,-4.d0)))call test_cdabs (zabs, (1.2d0,-4.d0), zabs((1.2d0,-4.d0)))call test_cabs (aimag, (1.2,-4.), aimag((1.2,-4.)))call test_cdabs (dimag, (1.2d0,-4.d0), dimag((1.2d0,-4.d0)))call test_nint (nint, -1.2, nint(-1.2))call test_idnint (idnint, -1.2d0, idnint(-1.2d0))call test_idim (isign, -42, 17, isign(-42, 17))call test_idim (idim, -42, 17, idim(-42,17))call test_idim (idim, 42, 17, idim(42,17))call test_r2 (dim, 1.2, -4., dim(1.2, -4.))call test_d2 (ddim, 1.2d0, -4.d0, ddim(1.2d0, -4.d0))call test_iabs (iabs, -7, iabs(-7))call test_idim (mod, 5, 2, mod(5,2))call test_len (len, "foobar", len("foobar"))call test_index (index, "foobarfoobar", "bar", index("foobarfoobar","bar"))end program
