65 integer ( kind = 4 ),
parameter :: n_max = 25
68 real ( kind = 8 ), save,
dimension ( n_max ) :: fx_vec = (/ &
69 -0.3544907701811032d+01, &
70 -0.1005871979644108d+03, &
71 0.9943258511915060d+02, &
72 0.9513507698668732d+01, &
73 0.4590843711998803d+01, &
74 0.2218159543757688d+01, &
75 0.1772453850905516d+01, &
76 0.1489192248812817d+01, &
77 0.1164229713725303d+01, &
78 0.1000000000000000d+01, &
79 0.9513507698668732d+00, &
80 0.9181687423997606d+00, &
81 0.8974706963062772d+00, &
82 0.8872638175030753d+00, &
83 0.8862269254527580d+00, &
84 0.8935153492876903d+00, &
85 0.9086387328532904d+00, &
86 0.9313837709802427d+00, &
87 0.9617658319073874d+00, &
88 0.1000000000000000d+01, &
89 0.2000000000000000d+01, &
90 0.6000000000000000d+01, &
91 0.3628800000000000d+06, &
92 0.1216451004088320d+18, &
93 0.8841761993739702d+31 /)
94 integer ( kind = 4 ) n_data
96 real ( kind = 8 ), save,
dimension ( n_max ) :: x_vec = (/ &
123 if ( n_data < 0 )
then
129 if ( n_max < n_data )
then
192 integer ( kind = 4 ),
parameter :: n_max = 20
195 real ( kind = 8 ), save,
dimension ( n_max ) :: fx_vec = (/ &
196 0.1524063822430784d+01, &
197 0.7966778177017837d+00, &
198 0.3982338580692348d+00, &
199 0.1520596783998375d+00, &
200 0.0000000000000000d+00, &
201 -0.4987244125983972d-01, &
202 -0.8537409000331584d-01, &
203 -0.1081748095078604d+00, &
204 -0.1196129141723712d+00, &
205 -0.1207822376352452d+00, &
206 -0.1125917656967557d+00, &
207 -0.9580769740706586d-01, &
208 -0.7108387291437216d-01, &
209 -0.3898427592308333d-01, &
210 0.00000000000000000d+00, &
211 0.69314718055994530d+00, &
212 0.17917594692280550d+01, &
213 0.12801827480081469d+02, &
214 0.39339884187199494d+02, &
215 0.71257038967168009d+02 /)
216 integer ( kind = 4 ) n_data
218 real ( kind = 8 ), save,
dimension ( n_max ) :: x_vec = (/ &
240 if ( n_data < 0 )
then
246 if ( n_max < n_data )
then
295 integer ( kind = 4 ) i
296 integer ( kind = 4 ) ios
297 integer ( kind = 4 ) iunit
298 logical ( kind = 4 ) lopen
304 if ( i /= 5 .and. i /= 6 .and. i /= 9 )
then
306 inquire ( unit = i, opened = lopen, iostat = ios )
309 if ( .not. lopen )
then
374 integer ( kind = 4 ) i
375 integer ( kind = 4 ) i_abs
377 integer ( kind = 4 ) ten_pow
390 do while ( ten_pow <= i_abs )
392 ten_pow = ten_pow * 10
456 integer ( kind = 4 ) i
458 integer ( kind = 4 ) j
459 integer ( kind = 4 ) value
462 write ( *,
'(a)' )
' '
463 write ( *,
'(a)' )
'I4_MODP - Fatal error!'
464 write ( *,
'(a,i8)' )
' Illegal divisor J = ', j
470 if (
value < 0 )
then
471 value =
value + abs( j )
538 integer ( kind = 4 ) a
539 integer ( kind = 4 ) b
540 integer ( kind = 4 ),
parameter :: i4_huge = 2147483647
542 integer ( kind = 4 ) k
544 integer ( kind = 4 ) seed
545 integer ( kind = 4 ) value
547 if ( seed == 0 )
then
548 write ( *,
'(a)' )
' '
549 write ( *,
'(a)' )
'I4_UNIFORM_AB - Fatal error!'
550 write ( *,
'(a)' )
' Input value of SEED = 0.'
556 seed = 16807 * ( seed - k * 127773 ) - k * 2836
559 seed = seed + i4_huge
562 r = real( seed, kind = 4 ) * 4.656612875e-10
566 r = ( 1.0e+00 - r ) * ( real( min( a, b ), kind = 4 ) - 0.5e+00 ) &
567 + r * ( real( max( a, b ), kind = 4 ) + 0.5e+00 )
571 value = nint( r, kind = 4 )
573 value = max(
value, min( a, b ) )
574 value = min(
value, max( a, b ) )
657 integer ( kind = 4 ) ihi
658 integer ( kind = 4 ) ilo
659 integer ( kind = 4 ) ival
660 integer ( kind = 4 ) jhi
661 integer ( kind = 4 ) jlo
662 integer ( kind = 4 ) value
663 integer ( kind = 4 ) wide
665 jlo = min( ilo, ihi )
666 jhi = max( ilo, ihi )
670 if ( wide == 1 )
then
673 value = jlo +
i4_modp( ival - jlo, wide )
716 integer ( kind = 4 ) i
717 integer ( kind = 4 ) imax
718 integer ( kind = 4 ) imin
720 real ( kind = 8 ) rmax
721 real ( kind = 8 ) rmin
723 if ( imax == imin )
then
725 r = 0.5d+00 * ( rmin + rmax )
729 r = ( real( imax - i, kind = 8 ) * rmin &
730 + real( i - imin, kind = 8 ) * rmax ) &
731 / real( imax - imin, kind = 8 )
767 integer ( kind = 4 ) n
769 integer ( kind = 4 ) a(n)
770 integer ( kind = 4 ) i
808 integer ( kind = 4 ) n
810 integer ( kind = 4 ) a(n)
811 integer ( kind = 4 ) i
872 integer ( kind = 4 ) n
874 integer ( kind = 4 ) a(n)
875 integer ( kind = 4 ) a_temp
876 integer ( kind = 4 ) ierror
877 integer ( kind = 4 ) iget
878 integer ( kind = 4 ) iput
879 integer ( kind = 4 ) istart
880 integer ( kind = 4 ) p(n)
888 if ( p(istart) < 0 )
then
892 else if ( p(istart) == istart )
then
894 p(istart) = - p(istart)
911 if ( iget < 1 .or. n < iget )
then
912 write ( *,
'(a)' )
' '
913 write ( *,
'(a)' )
'I4VEC_PERMUTE - Fatal error!'
914 write ( *,
'(a)' )
' A permutation index is out of range.'
915 write ( *,
'(a,i8,a,i8)' )
' P(', iput,
') = ', iget
919 if ( iget == istart )
then
970 integer ( kind = 4 ) n
972 integer ( kind = 4 ) a(n)
973 integer ( kind = 4 ) i
974 character ( len = * ) title
976 write ( *,
'(a)' )
' '
977 write ( *,
'(a)' ) trim( title )
978 write ( *,
'(a)' )
' '
980 write ( *,
'(2x,i8,a,2x,i12)' ) i,
':', a(i)
1022 integer ( kind = 4 ) n
1024 real ( kind = 8 ) d1
1025 real ( kind = 8 ) d2pn
1026 real ( kind = 8 ) d3pn
1027 real ( kind = 8 ) d4pn
1028 real ( kind = 8 ) dp
1029 real ( kind = 8 ) dpn
1030 real ( kind = 8 ) e1
1031 real ( kind = 8 ) fx
1033 integer ( kind = 4 ) i
1034 integer ( kind = 4 ) iback
1035 integer ( kind = 4 ) k
1036 integer ( kind = 4 ) m
1037 integer ( kind = 4 ) mp1mi
1038 integer ( kind = 4 ) ncopy
1039 integer ( kind = 4 ) nmove
1041 real ( kind = 8 ) pk
1042 real ( kind = 8 ) pkm1
1043 real ( kind = 8 ) pkp1
1044 real ( kind = 8 ), parameter ::
r8_pi = 3.141592653589793d+00
1048 real ( kind = 8 ) x(n)
1049 real ( kind = 8 ) x0
1050 real ( kind = 8 ) xtemp
1052 e1 = real( n * ( n + 1 ), kind = 8 )
1060 t = real( 4 * i - 1, kind = 8 ) *
r8_pi &
1061 / real( 4 * n + 2, kind = 8 )
1063 x0 = cos( t ) * ( 1.0d+00 - ( 1.0d+00 - 1.0d+00 &
1064 / real( n, kind = 8 ) ) &
1065 / real( 8 * n * n, kind = 8 ) )
1071 pkp1 = 2.0d+00 * x0 * pk - pkm1 - ( x0 * pk - pkm1 ) &
1072 / real( k, kind = 8 )
1077 d1 = real( n, kind = 8 ) * ( pkm1 - x0 * pk )
1079 dpn = d1 / ( 1.0d+00 - x0 ) / ( 1.0d+00 + x0 )
1081 d2pn = ( 2.0d+00 * x0 * dpn - e1 * pk ) / ( 1.0d+00 - x0 ) &
1084 d3pn = ( 4.0d+00 * x0 * d2pn + ( 2.0d+00 - e1 ) * dpn ) &
1085 / ( 1.0d+00 - x0 ) / ( 1.0d+00 + x0 )
1087 d4pn = ( 6.0d+00 * x0 * d3pn + ( 6.0d+00 - e1 ) * d2pn ) &
1088 / ( 1.0d+00 - x0 ) / ( 1.0d+00 + x0 )
1095 h = - u * ( 1.0d+00 + 0.5d+00 * u * ( v + u * ( v * v - d3pn / &
1096 ( 3.0d+00 * dpn ) ) ) )
1100 p = pk + h * ( dpn + 0.5d+00 * h * ( d2pn + h / 3.0d+00 &
1101 * ( d3pn + 0.25d+00 * h * d4pn ) ) )
1103 dp = dpn + h * ( d2pn + 0.5d+00 * h * ( d3pn + h * d4pn / 3.0d+00 ) )
1111 fx = d1 - h * e1 * ( pk + 0.5d+00 * h * ( dpn + h / 3.0d+00 &
1112 * ( d2pn + 0.25d+00 * h * ( d3pn + 0.2d+00 * h * d4pn ) ) ) )
1116 if ( mod( n, 2 ) == 1 )
then
1122 nmove = ( n + 1 ) / 2
1127 x(iback) = x(iback-ncopy)
1169 integer ( kind = 4 ) n
1171 integer ( kind = 4 ) ierror
1172 integer ( kind = 4 ) location
1173 integer ( kind = 4 ) p(n)
1174 integer ( kind = 4 ) value
1181 if ( p(location) ==
value )
then
1187 if ( ierror /= 0 )
then
1188 write ( *,
'(a)' )
' '
1189 write ( *,
'(a)' )
'PERM_CHECK0 - Fatal error!'
1190 write ( *,
'(a,i4)' )
' Permutation is missing value ',
value
1229 integer ( kind = 4 ) n
1231 integer ( kind = 4 ) ierror
1232 integer ( kind = 4 ) location
1233 integer ( kind = 4 ) p(n)
1234 integer ( kind = 4 ) value
1241 if ( p(location) ==
value )
then
1247 if ( ierror /= 0 )
then
1248 write ( *,
'(a)' )
' '
1249 write ( *,
'(a)' )
'PERM_CHECK1 - Fatal error!'
1250 write ( *,
'(a,i4)' )
' Permutation is missing value ',
value
1296 integer ( kind = 4 ) n
1298 integer ( kind = 4 ) i
1299 integer ( kind = 4 ) i4_uniform_ab
1300 integer ( kind = 4 ) j
1301 integer ( kind = 4 ) k
1302 integer ( kind = 4 ) p(n)
1303 integer ( kind = 4 ) seed
1310 j = i4_uniform_ab( i, n, seed )
1354 if ( 0.0d+00 <= x )
then
1397 real ( kind = 8 ) c2
1401 c2 = max( c2, -1.0d+00 )
1402 c2 = min( c2, +1.0d+00 )
1446 real ( kind = 8 ), parameter :: dln2 = 0.69314718055994530941723212145818d+00
1448 real ( kind = 8 ), parameter ::
r8_tiny = 1.0d-30
1449 real ( kind = 8 ) value
1451 real ( kind = 8 ), save :: xmax = 0.0d+00
1453 if ( xmax == 0.0d+00 )
then
1454 xmax = 1.0d+00 / sqrt(
r8_tiny )
1457 if ( x < 1.0d+00 )
then
1458 write ( *,
'(a)' )
' '
1459 write ( *,
'(a)' )
'R8_ACOSH - Fatal error!'
1460 write ( *,
'(a)' )
' X < 1.0'
1462 else if ( x < xmax )
then
1463 value = log( x + sqrt( x * x - 1.0d+00 ) )
1465 value = dln2 + log( x )
1569 real ( kind = 8 ) a1
1570 real ( kind = 8 ) a2
1572 real ( kind = 8 ) b1
1573 real ( kind = 8 ) b2
1574 integer ( kind = 4 ) it
1575 integer ( kind = 4 ),
parameter :: it_max = 1000
1577 real ( kind = 8 ) tol
1579 if ( a < 0.0d+00 )
then
1580 write ( *,
'(a)' )
' '
1581 write ( *,
'(a)' )
'R8_AGM - Fatal error!'
1582 write ( *,
'(a)' )
' A < 0.'
1586 if ( b < 0.0d+00 )
then
1587 write ( *,
'(a)' )
' '
1588 write ( *,
'(a)' )
'R8_AGM - Fatal error!'
1589 write ( *,
'(a)' )
' B < 0.'
1593 if ( a == 0.0d+00 .or. b == 0.0d+00 )
then
1604 tol = 100.0d+00 * epsilon( tol )
1613 a2 = ( a1 + b1 ) / 2.0d+00
1614 b2 = sqrt( a1 * b1 )
1616 if ( abs( a2 - b2 ) <= tol * ( a2 + b2 ) )
then
1620 if ( it_max < it )
then
1621 write ( *,
'(a)' )
' '
1622 write ( *,
'(a)' )
'R8_AGM - Fatal error!'
1623 write ( *,
'(a,i8)' )
' Exceeded iteration limit ', it_max
1624 write ( *,
'(a,g14.6)' )
' Estimated value = ', a2
1664 real ( kind = 8 ) value
1667 if ( x < 0.0d+00 )
then
1668 value = - int( abs( x ) )
1670 value = int( abs( x ) )
1713 real ( kind = 8 ) s2
1716 s2 = max( s2, -1.0d+00 )
1717 s2 = min( s2, +1.0d+00 )
1767 real ( kind = 8 ) abs_x
1768 real ( kind = 8 ) abs_y
1770 real ( kind = 8 ), parameter ::
r8_pi = 3.141592653589793d+00
1771 real ( kind = 8 ) theta
1772 real ( kind = 8 ) theta_0
1778 if ( x == 0.0d+00 )
then
1780 if ( 0.0d+00 < y )
then
1781 theta =
r8_pi / 2.0d+00
1782 else if ( y < 0.0d+00 )
then
1783 theta = 3.0d+00 *
r8_pi / 2.0d+00
1784 else if ( y == 0.0d+00 )
then
1788 else if ( y == 0.0d+00 )
then
1790 if ( 0.0d+00 < x )
then
1792 else if ( x < 0.0d+00 )
then
1803 theta_0 = atan2( abs_y, abs_x )
1805 if ( 0.0d+00 < x .and. 0.0d+00 < y )
then
1807 else if ( x < 0.0d+00 .and. 0.0d+00 < y )
then
1808 theta =
r8_pi - theta_0
1809 else if ( x < 0.0d+00 .and. y < 0.0d+00 )
then
1810 theta =
r8_pi + theta_0
1811 else if ( 0.0d+00 < x .and. y < 0.0d+00 )
then
1812 theta = 2.0d+00 *
r8_pi - theta_0
1903 r8_cas = cos( x ) + sin( x )
1948 integer ( kind = 4 ) value
1950 value = real( int( r ), kind = 8 )
1951 if (
value < r )
then
1952 value =
value + 1.0d+00
2003 integer ( kind = 4 ) i
2004 integer ( kind = 4 ) k
2005 integer ( kind = 4 ) mn
2006 integer ( kind = 4 ) mx
2007 integer ( kind = 4 ) n
2009 real ( kind = 8 ) value
2011 mn = min( k, n - k )
2017 else if ( mn == 0 )
then
2023 mx = max( k, n - k )
2024 value = real( mx + 1, kind = 8 )
2027 value = (
value * real( mx + i, kind = 8 ) ) / real( i, kind = 8 )
2083 real ( kind = 8 ) fac
2084 integer ( kind = 4 ) place
2089 integer ( kind = 4 ) temp
2094 fac = 2.0d+00 ** ( temp - place + 1 )
2095 r8_chop = s * real( int( abs( x ) / fac ), kind = 8 ) * fac
2125 real ( kind = 8 ) degrees
2127 real ( kind = 8 ), parameter ::
r8_pi = 3.141592653589793d+00
2128 real ( kind = 8 ) radians
2130 radians =
r8_pi * ( degrees / 180.0d+00 )
2161 real ( kind = 8 ) degrees
2163 real ( kind = 8 ), parameter ::
r8_pi = 3.141592653589793d+00
2164 real ( kind = 8 ) radians
2166 radians =
r8_pi * ( degrees / 180.0d+00 )
2167 r8_cotd = cos( radians ) / sin( radians )
2197 real ( kind = 8 ) degrees
2199 real ( kind = 8 ), parameter ::
r8_pi = 3.141592653589793d+00
2200 real ( kind = 8 ) radians
2202 radians =
r8_pi * ( degrees / 180.0d+00 )
2203 r8_cscd = 1.0d+00 / sin( radians )
2243 real ( kind = 8 ) theta
2244 real ( kind = 8 ) value
2246 value = sin( theta )
2248 if (
value == 0.0d+00 )
then
2249 write ( *,
'(a)' )
' '
2250 write ( *,
'(a)' )
'R8_CSC - Fatal error!'
2251 write ( *,
'(a,g14.6)' )
' Cosecant undefined for THETA = ', theta
2285 real ( kind = 8 ) argument
2286 real ( kind = 8 ) magnitude
2288 real ( kind = 8 ), parameter ::
r8_pi = 3.141592653589793d+00
2291 if ( 0.0d+00 < x )
then
2294 else if ( 0.0d+00 == x )
then
2297 else if ( x < 0.0d+00 )
then
2302 magnitude = sqrt( magnitude )
2303 argument = argument / 2.0d+00
2305 r8_csqrt = magnitude * cmplx( cos( argument ), sin( argument ), kind = 8 )
2341 real ( kind = 8 ) value
2344 if ( 0.0d+00 < x )
then
2345 value = x ** ( 1.0d+00 / 3.0d+00 )
2346 else if ( x == 0.0d+00 )
then
2349 value = -( abs( x ) ) ** ( 1.0d+00 / 3.0d+00 )
2383 real ( kind = 8 ), parameter ::
r8_pi = 3.1415926535897932384626434d+00
2384 real ( kind = 8 ) radians
2430 real ( kind = 8 ) cx
2431 real ( kind = 8 ) cy
2432 integer ( kind = 4 ) n
2433 real ( kind = 8 ) pow2
2435 real ( kind = 8 ) size
2449 size = max( abs( x ), abs( y ) )
2462 cx = real( int( cx * pow2 + sign( 0.5d+00, cx ) ), kind = 8 ) / pow2
2463 cy = real( int( cy * pow2 + sign( 0.5d+00, cy ) ), kind = 8 ) / pow2
2507 integer ( kind = 4 ) digit
2508 integer ( kind = 4 ) i
2509 integer ( kind = 4 ) idigit
2510 integer ( kind = 4 ) ival
2512 real ( kind = 8 ) xcopy
2514 if ( x == 0.0d+00 )
then
2519 if ( idigit <= 0 )
then
2528 do while ( xcopy < 1.0d+00 )
2529 xcopy = xcopy * 10.0d+00
2532 do while ( 10.0d+00 <= xcopy )
2533 xcopy = xcopy / 10.0d+00
2538 xcopy = ( xcopy - ival ) * 10.0d+00
2571 integer ( kind = 4 ) i
2572 integer ( kind = 4 ) j
2575 r8_divide_i4 = real( i, kind = 8 ) / real( j, kind = 8 )
2657 real ( kind = 8 ) one
2660 real ( kind = 8 ) temp
2661 real ( kind = 8 ) test
2662 real ( kind = 8 ) value
2664 one = real( 1, kind = 8 )
2667 temp =
value / 2.0d+00
2668 test =
r8_add( one, temp )
2670 do while ( one < test )
2672 temp =
value / 2.0d+00
2673 test =
r8_add( one, temp )
2719 real ( kind = 8 ), parameter ::
r8_big = 1.0d+30
2720 real ( kind = 8 ), parameter :: r8_log_max = +69.0776d+00
2721 real ( kind = 8 ), parameter :: r8_log_min = -69.0776d+00
2722 real ( kind = 8 ) value
2725 if ( x <= r8_log_min )
then
2727 else if ( x < r8_log_max )
then
2769 integer ( kind = 4 ) i
2770 integer ( kind = 4 ) n
2771 real ( kind = 8 ) value
2776 value =
value * real( i, kind = 8 )
2831 integer ( kind = 4 ) n
2833 real ( kind = 8 ) r8_n
2834 real ( kind = 8 ) value
2840 r8_n = real( n, kind = 8 )
2842 do while ( 1.0d+00 < r8_n )
2843 value =
value * r8_n
2844 r8_n = r8_n - 2.0d+00
2900 real ( kind = 8 ) arg
2901 integer ( kind = 4 ) i
2902 integer ( kind = 4 ) n
2904 real ( kind = 8 ) value
2918 else if ( n < 0 )
then
2972 real ( kind = 8 ) value
2974 value = real( int( r ), kind = 8 )
2975 if ( r <
value )
then
2976 value =
value - 1.0d+00
3026 integer ( kind = 4 ) i
3027 integer ( kind = 4 ) j
3030 r8_fraction = real( i, kind = 8 ) / real( j, kind = 8 )
3087 r8_fractional = abs( x ) - real( int( abs( x ) ), kind = 8 )
3144 real ( kind = 8 ), dimension ( 7 ) :: c = (/ &
3145 -1.910444077728d-03, &
3146 8.4171387781295d-04, &
3147 -5.952379913043012d-04, &
3148 7.93650793500350248d-04, &
3149 -2.777777777777681622553d-03, &
3150 8.333333333333333331554247d-02, &
3152 real ( kind = 8 ) fact
3153 integer ( kind = 4 ) i
3154 integer ( kind = 4 ) n
3155 real ( kind = 8 ), dimension ( 8 ) :: p = (/ &
3156 -1.71618513886549492533811d+00, &
3157 2.47656508055759199108314d+01, &
3158 -3.79804256470945635097577d+02, &
3159 6.29331155312818442661052d+02, &
3160 8.66966202790413211295064d+02, &
3161 -3.14512729688483675254357d+04, &
3162 -3.61444134186911729807069d+04, &
3163 6.64561438202405440627855d+04 /)
3164 logical ( kind = 4 ) parity
3165 real ( kind = 8 ), dimension ( 8 ) :: q = (/ &
3166 -3.08402300119738975254353d+01, &
3167 3.15350626979604161529144d+02, &
3168 -1.01515636749021914166146d+03, &
3169 -3.10777167157231109440444d+03, &
3170 2.25381184209801510330112d+04, &
3171 4.75584627752788110767815d+03, &
3172 -1.34659959864969306392456d+05, &
3173 -1.15132259675553483497211d+05 /)
3176 real ( kind = 8 ), parameter ::
r8_pi = 3.1415926535897932384626434d+00
3177 real ( kind = 8 ) res
3178 real ( kind = 8 ), parameter :: sqrtpi = 0.9189385332046727417803297d+00
3179 real ( kind = 8 ) sum
3181 real ( kind = 8 ), parameter :: xbig = 171.624d+00
3182 real ( kind = 8 ) xden
3183 real ( kind = 8 ), parameter :: xinf = 1.79d+308
3184 real ( kind = 8 ), parameter :: xminin = 2.23d-308
3185 real ( kind = 8 ) xnum
3187 real ( kind = 8 ) y1
3188 real ( kind = 8 ) ysq
3198 if ( y <= 0.0d+00 )
then
3204 if ( res /= 0.0d+00 )
then
3206 if ( y1 /= aint( y1 * 0.5d+00 ) * 2.0d+00 )
then
3229 if ( xminin <= y )
then
3237 else if ( y < 12.0d+00 )
then
3243 if ( y < 1.0d+00 )
then
3254 y = y - real( n, kind = 8 )
3264 xnum = ( xnum + p(i) ) * z
3265 xden = xden * z + q(i)
3268 res = xnum / xden + 1.0d+00
3278 else if ( y < y1 )
then
3291 if ( y <= xbig )
then
3296 sum = sum / ysq + c(i)
3298 sum = sum / y - y + sqrtpi
3299 sum = sum + ( y - 0.5d+00 ) * log( y )
3318 if ( fact /= 1.0d+00 )
then
3382 real ( kind = 8 ), dimension ( 7 ) :: c = (/ &
3383 -1.910444077728d-03, &
3384 8.4171387781295d-04, &
3385 -5.952379913043012d-04, &
3386 7.93650793500350248d-04, &
3387 -2.777777777777681622553d-03, &
3388 8.333333333333333331554247d-02, &
3390 real ( kind = 8 ) corr
3391 real ( kind = 8 ) :: d1 = -5.772156649015328605195174d-01
3392 real ( kind = 8 ) :: d2 = 4.227843350984671393993777d-01
3393 real ( kind = 8 ) :: d4 = 1.791759469228055000094023d+00
3394 real ( kind = 8 ), parameter :: frtbig = 2.25d+76
3395 integer ( kind = 4 ) i
3396 real ( kind = 8 ), dimension ( 8 ) :: p1 = (/ &
3397 4.945235359296727046734888d+00, &
3398 2.018112620856775083915565d+02, &
3399 2.290838373831346393026739d+03, &
3400 1.131967205903380828685045d+04, &
3401 2.855724635671635335736389d+04, &
3402 3.848496228443793359990269d+04, &
3403 2.637748787624195437963534d+04, &
3404 7.225813979700288197698961d+03 /)
3405 real ( kind = 8 ), dimension ( 8 ) :: p2 = (/ &
3406 4.974607845568932035012064d+00, &
3407 5.424138599891070494101986d+02, &
3408 1.550693864978364947665077d+04, &
3409 1.847932904445632425417223d+05, &
3410 1.088204769468828767498470d+06, &
3411 3.338152967987029735917223d+06, &
3412 5.106661678927352456275255d+06, &
3413 3.074109054850539556250927d+06 /)
3414 real ( kind = 8 ), dimension ( 8 ) :: p4 = (/ &
3415 1.474502166059939948905062d+04, &
3416 2.426813369486704502836312d+06, &
3417 1.214755574045093227939592d+08, &
3418 2.663432449630976949898078d+09, &
3419 2.940378956634553899906876d+10, &
3420 1.702665737765398868392998d+11, &
3421 4.926125793377430887588120d+11, &
3422 5.606251856223951465078242d+11 /)
3423 real ( kind = 8 ), dimension ( 8 ) :: q1 = (/ &
3424 6.748212550303777196073036d+01, &
3425 1.113332393857199323513008d+03, &
3426 7.738757056935398733233834d+03, &
3427 2.763987074403340708898585d+04, &
3428 5.499310206226157329794414d+04, &
3429 6.161122180066002127833352d+04, &
3430 3.635127591501940507276287d+04, &
3431 8.785536302431013170870835d+03 /)
3432 real ( kind = 8 ), dimension ( 8 ) :: q2 = (/ &
3433 1.830328399370592604055942d+02, &
3434 7.765049321445005871323047d+03, &
3435 1.331903827966074194402448d+05, &
3436 1.136705821321969608938755d+06, &
3437 5.267964117437946917577538d+06, &
3438 1.346701454311101692290052d+07, &
3439 1.782736530353274213975932d+07, &
3440 9.533095591844353613395747d+06 /)
3441 real ( kind = 8 ), dimension ( 8 ) :: q4 = (/ &
3442 2.690530175870899333379843d+03, &
3443 6.393885654300092398984238d+05, &
3444 4.135599930241388052042842d+07, &
3445 1.120872109616147941376570d+09, &
3446 1.488613728678813811542398d+10, &
3447 1.016803586272438228077304d+11, &
3448 3.417476345507377132798597d+11, &
3449 4.463158187419713286462081d+11 /)
3451 real ( kind = 8 ) res
3452 real ( kind = 8 ), parameter :: sqrtpi = 0.9189385332046727417803297d+00
3454 real ( kind = 8 ), parameter :: xbig = 2.55d+305
3455 real ( kind = 8 ) xden
3456 real ( kind = 8 ), parameter :: xinf = 1.79d+308
3457 real ( kind = 8 ) xm1
3458 real ( kind = 8 ) xm2
3459 real ( kind = 8 ) xm4
3460 real ( kind = 8 ) xnum
3462 real ( kind = 8 ) ysq
3466 if ( 0.0d+00 < y .and. y <= xbig )
then
3468 if ( y <= epsilon( y ) )
then
3474 else if ( y <= 1.5d+00 )
then
3476 if ( y < 0.6796875d+00 )
then
3481 xm1 = ( y - 0.5d+00 ) - 0.5d+00
3484 if ( y <= 0.5d+00 .or. 0.6796875d+00 <= y )
then
3489 xnum = xnum * xm1 + p1(i)
3490 xden = xden * xm1 + q1(i)
3493 res = corr + ( xm1 * ( d1 + xm1 * ( xnum / xden ) ) )
3497 xm2 = ( y - 0.5d+00 ) - 0.5d+00
3501 xnum = xnum * xm2 + p2(i)
3502 xden = xden * xm2 + q2(i)
3505 res = corr + xm2 * ( d2 + xm2 * ( xnum / xden ) )
3511 else if ( y <= 4.0d+00 )
then
3517 xnum = xnum * xm2 + p2(i)
3518 xden = xden * xm2 + q2(i)
3521 res = xm2 * ( d2 + xm2 * ( xnum / xden ) )
3525 else if ( y <= 12.0d+00 )
then
3531 xnum = xnum * xm4 + p4(i)
3532 xden = xden * xm4 + q4(i)
3535 res = d4 + xm4 * ( xnum / xden )
3543 if ( y <= frtbig )
then
3549 res = res / ysq + c(i)
3556 res = res + sqrtpi - 0.5d+00 * corr
3557 res = res + y * ( corr - 1.0d+00 )
3610 r8_huge = 1.79769313486231571d+308
3647 if ( abs( x ) < abs( y ) )
then
3657 if ( a == 0.0d+00 )
then
3660 c = a * sqrt( 1.0d+00 + ( b / a )**2 )
3695 logical ( kind = 4 ) value
3697 if ( a < 0.0d+00 .or. 1.0d+00 < a )
then
3740 real ( kind = 8 ) tol
3741 logical ( kind = 4 ) value
3746 tol = epsilon( r ) * abs( r )
3748 if ( tol < abs( r - t ) )
then
3782 integer ( kind = 4 ),
parameter :: i4_huge = 2147483647
3785 logical ( kind = 4 ) value
3787 if ( real( i4_huge, kind = 8 ) < r )
then
3789 else if ( r < - real( i4_huge, kind = 8 ) )
then
3791 else if ( r == real( int( r ), kind = 8 ) )
then
3836 if ( x == 0.0d+00 )
then
3839 r8_log_2 = log( abs( x ) ) / log( 2.0d+00 )
3879 if ( x == 0.0d+00 )
then
3925 if ( b == 0.0d+00 .or. b == 1.0d+00 .or. b == - 1.0d+00 )
then
3927 else if ( abs( x ) == 0.0d+00 )
then
3930 r8_log_b = log( abs( x ) ) / log( abs( b ) )
3979 integer ( kind = 4 ) l
3981 integer ( kind = 4 ) s
3986 if ( x < 0.0d+00 )
then
3995 if ( x < 0.0d+00 )
then
4005 if ( x == 0.0d+00 )
then
4009 do while ( 2.0d+00 <= r )
4014 do while ( r < 1.0d+00 )
4147 if ( y == 0.0d+00 )
then
4148 write ( *,
'(a)' )
' '
4149 write ( *,
'(a)' )
'R8_MOD - Fatal error!'
4150 write ( *,
'(a,g14.6)' )
' R8_MOD ( X, Y ) called with Y = ', y
4154 r8_mod = x - real( int( x / y ), kind = 8 ) * y
4156 if ( x < 0.0d+00 .and. 0.0d+00 <
r8_mod )
then
4158 else if ( 0.0d+00 < x .and.
r8_mod < 0.0d+00 )
then
4223 if ( y == 0.0d+00 )
then
4224 write ( *,
'(a)' )
' '
4225 write ( *,
'(a)' )
'R8_MODP - Fatal error!'
4226 write ( *,
'(a,g14.6)' )
' R8_MODP ( X, Y ) called with Y = ', y
4268 integer ( kind = 4 ) i
4270 real ( kind = 8 ) value
4272 if ( mod( i, 2 ) == 0 )
then
4322 integer ( kind = 4 ) s
4325 if ( x < 0.0d+00 )
then
4331 r8_nint = s * int( abs( x ) + 0.5d+00 )
4368 real ( kind = 8 ) r1
4369 real ( kind = 8 ) r2
4371 real ( kind = 8 ), parameter ::
r8_pi = 3.141592653589793d+00
4373 integer ( kind = 4 ) seed
4378 x = sqrt( - 2.0d+00 * log( r1 ) ) * cos( 2.0d+00 *
r8_pi * r2 )
4422 real ( kind = 8 ) r1
4423 real ( kind = 8 ) r2
4425 real ( kind = 8 ), parameter ::
r8_pi = 3.141592653589793d+00
4427 integer ( kind = 4 ) seed
4432 x = sqrt( - 2.0d+00 * log( r1 ) ) * cos( 2.0d+00 *
r8_pi * r2 )
4462 real ( kind = 8 )
r8_pi
4464 r8_pi = 3.141592653589793d+00
4526 integer ( kind = 4 ) p
4529 real ( kind = 8 ) value
4541 else if ( r == 0.0d+00 )
then
4549 else if ( 1 <= p )
then
4552 value = 1.0d+00 / r ** (-p)
4603 integer ( kind = 4 ) mults
4604 integer ( kind = 4 ) p
4605 integer ( kind = 4 ) p_mag
4606 integer ( kind = 4 ) p_sign
4608 real ( kind = 8 ) r2
4609 real ( kind = 8 ) rp
4615 if ( r == 1.0d+00 )
then
4620 if ( r == -1.0d+00 )
then
4622 if ( mod( p, 2 ) == 1 )
then
4632 if ( r == 0.0d+00 )
then
4635 write ( *,
'(a)' )
' '
4636 write ( *,
'(a)' )
'R8_POWER_FAST - Fatal error!'
4637 write ( *,
'(a)' )
' Base R is zero, and exponent is negative.'
4638 write ( *,
'(a,i8)' )
' Exponent P = ', p
4653 else if ( p == 0 )
then
4656 else if ( p == 1 )
then
4664 p_sign = sign( 1, p )
4669 do while ( 0 < p_mag )
4671 if ( mod( p_mag, 2 ) == 1 )
then
4682 if ( p_sign == -1 )
then
4716 character ( len = * ) title
4718 write ( *,
'(a,2x,g14.6)' ) trim( title ), r
4750 real ( kind = 8 ) a_abs
4752 real ( kind = 8 ) b_abs
4758 if ( b_abs < a_abs )
then
4759 r8_pythag = a_abs * sqrt( 1.0d+00 + ( b_abs / a_abs ) * ( b_abs / a_abs ) )
4760 else if ( b_abs == 0.0d+00 )
then
4762 else if ( a_abs <= b_abs )
then
4763 r8_pythag = b_abs * sqrt( 1.0d+00 + ( a_abs / b_abs ) * ( a_abs / b_abs ) )
4794 real ( kind = 8 ) degrees
4795 real ( kind = 8 ), parameter ::
r8_pi = 3.1415926535897932384626434d+00
4850 real ( kind = 8 ) arg
4851 integer ( kind = 4 ) i
4852 integer ( kind = 4 ) n
4854 real ( kind = 8 ) value
4868 else if ( n < 0 )
then
4921 real ( kind = 8 ) value
4924 if ( x < 0.0d+00 )
then
4925 value = - real( int( - x + 0.5d+00 ), kind = 8 )
4927 value = real( int( + x + 0.5d+00 ), kind = 8 )
4980 integer ( kind = 4 ) value
4983 if ( x < 0.0d+00 )
then
4984 value = - int( - x + 0.5d+00 )
4986 value = int( + x + 0.5d+00 )
5047 integer ( kind = 4 ) iplace
5048 integer ( kind = 4 ) l
5049 integer ( kind = 4 ) nplace
5050 integer ( kind = 4 ) s
5052 real ( kind = 8 ) xmant
5053 real ( kind = 8 ) xround
5054 real ( kind = 8 ) xtemp
5060 if ( x == 0.0d+00 )
then
5064 if ( nplace <= 0 )
then
5070 if ( 0.0d+00 < x )
then
5083 do while ( 2.0d+00 <= xtemp )
5084 xtemp = xtemp / 2.0d+00
5088 do while ( xtemp < 1.0d+00 )
5089 xtemp = xtemp * 2.0d+00
5100 xmant = 2.0d+00 * xmant
5102 if ( 1.0d+00 <= xtemp )
then
5103 xmant = xmant + 1.0d+00
5104 xtemp = xtemp - 1.0d+00
5109 if ( xtemp == 0.0d+00 .or. nplace <= iplace )
then
5110 xround = s * xmant * 2.0d+00**l
5115 xtemp = xtemp * 2.0d+00
5187 integer ( kind = 4 ) base
5188 integer ( kind = 4 ) iplace
5189 integer ( kind = 4 ) is
5190 integer ( kind = 4 ) js
5191 integer ( kind = 4 ) l
5192 integer ( kind = 4 ) nplace
5194 real ( kind = 8 ) xmant
5195 real ( kind = 8 ) xround
5196 real ( kind = 8 ) xtemp
5202 if ( base == 0 )
then
5203 write ( *,
'(a)' )
' '
5204 write ( *,
'(a)' )
'R8_ROUNDB - Fatal error!'
5205 write ( *,
'(a)' )
' The base BASE cannot be zero.'
5211 if ( x == 0.0d+00 )
then
5215 if ( nplace <= 0 )
then
5221 if ( 0.0d+00 < x )
then
5234 do while ( abs( base ) <= abs( xtemp ) )
5236 xtemp = xtemp / real( base, kind = 8 )
5238 if ( xtemp < 0.0d+00 )
then
5247 do while ( abs( xtemp ) < 1.0d+00 )
5249 xtemp = xtemp * base
5251 if ( xtemp < 0.0d+00 )
then
5269 xmant = base * xmant
5271 if ( xmant < 0.0d+00 )
then
5276 if ( 1.0d+00 <= xtemp )
then
5277 xmant = xmant + int( xtemp )
5278 xtemp = xtemp - int( xtemp )
5283 if ( xtemp == 0.0d+00 .or. nplace <= iplace )
then
5284 xround = js * xmant * ( real( base, kind = 8 ) )**l
5289 xtemp = xtemp * base
5291 if ( xtemp < 0.0d+00 )
then
5359 integer ( kind = 4 ) iplace
5360 integer ( kind = 4 ) is
5361 integer ( kind = 4 ) l
5362 integer ( kind = 4 ) nplace
5364 real ( kind = 8 ) xmant
5365 real ( kind = 8 ) xround
5366 real ( kind = 8 ) xtemp
5372 if ( x == 0.0d+00 )
then
5376 if ( nplace <= 0 )
then
5382 if ( 0.0d+00 < x )
then
5395 do while ( 10.0d+00 <= x )
5396 xtemp = xtemp / 10.0d+00
5400 do while ( xtemp < 1.0d+00 )
5401 xtemp = xtemp * 10.0d+00
5413 xmant = 10.0d+00 * xmant
5415 if ( 1.0d+00 <= xtemp )
then
5416 xmant = xmant + int( xtemp )
5417 xtemp = xtemp - int( xtemp )
5422 if ( xtemp == 0.0d+00 .or. nplace <= iplace )
then
5423 xround = is * xmant * ( 10.0d+00**l )
5428 xtemp = xtemp * 10.0d+00
5460 real ( kind = 8 ) degrees
5461 real ( kind = 8 ), parameter ::
r8_pi = 3.141592653589793d+00
5463 real ( kind = 8 ) radians
5465 radians =
r8_pi * ( degrees / 180.0d+00 )
5466 r8_secd = 1.0d+00 / cos( radians )
5496 real ( kind = 8 ), parameter :: log_huge = 80.0d+00
5500 if ( log_huge < abs( x ) )
then
5550 real ( kind = 8 ) value
5553 if ( x < 0.0d+00 )
then
5590 real ( kind = 8 ) value
5593 if ( x < 0.0d+00 )
then
5595 else if ( x == 0.0d+00 )
then
5635 if ( x < 0.0d+00 )
then
5637 else if ( x == 0.0d+00 )
then
5680 real ( kind = 8 ) r1
5681 real ( kind = 8 ) r2
5684 r8_sign_match = ( r1 <= 0.0d+00 .and. r2 <= 0.0d+00 ) .or. &
5685 ( 0.0d+00 <= r1 .and. 0.0d+00 <= r2 )
5716 real ( kind = 8 ) r1
5717 real ( kind = 8 ) r2
5721 ( r1 < 0.0d+00 .and. r2 < 0.0d+00 ) .or. &
5722 ( r1 == 0.0d+00 .and. r2 == 0.0d+00 ) .or. &
5723 ( 0.0d+00 < r1 .and. 0.0d+00 < r2 )
5760 real ( kind = 8 ) r1
5761 real ( kind = 8 ) r2
5765 ( r2 <= 0.0d+00 .and. 0.0d+00 <= r1 )
5802 real ( kind = 8 ) r1
5803 real ( kind = 8 ) r2
5807 ( r2 < 0.0d+00 .and. 0.0d+00 < r1 )
5837 real ( kind = 8 ) degrees
5838 real ( kind = 8 ), parameter ::
r8_pi = 3.141592653589793d+00
5840 real ( kind = 8 ) radians
5842 radians =
r8_pi * ( degrees / 180.0d+00 )
5873 integer ( kind = 4 ) i
5987 real ( kind = 8 ) degrees
5988 real ( kind = 8 ), parameter ::
r8_pi = 3.141592653589793d+00
5990 real ( kind = 8 ) radians
5992 radians =
r8_pi * ( degrees / 180.0d+00 )
6083 integer ( kind = 4 ) f
6084 integer ( kind = 4 ) nr
6086 real ( kind = 8 ) rd
6087 real ( kind = 8 ) rmax
6088 real ( kind = 8 ) rmin
6093 write ( *,
'(a)' )
' '
6094 write ( *,
'(a)' )
'R8_TO_R8_DISCRETE - Fatal error!'
6095 write ( *,
'(a,i8)' )
' NR = ', nr
6096 write ( *,
'(a)' )
' but NR must be at least 1.'
6101 rd = 0.5d+00 * ( rmin + rmax )
6105 if ( rmax == rmin )
then
6110 f = nint( real( nr, kind = 8 ) * ( rmax - r ) / ( rmax - rmin ) )
6114 rd = ( real( f, kind = 8 ) * rmin &
6115 + real( nr - f, kind = 8 ) * rmax ) &
6116 / real( nr, kind = 8 )
6148 integer ( kind = 4 ) d
6149 integer ( kind = 4 ) h
6150 integer ( kind = 4 ) m
6152 real ( kind = 8 ) r_copy
6153 integer ( kind = 4 ) s
6160 r_copy = 24.0d+00 * r_copy
6164 r_copy = 60.0d+00 * r_copy
6168 r_copy = 60.0d+00 * r_copy
6171 if ( r < 0.0d+00 )
then
6220 integer ( kind = 4 ) ix
6221 integer ( kind = 4 ) ixmax
6222 integer ( kind = 4 ) ixmin
6223 real ( kind = 8 ) temp
6225 real ( kind = 8 ) xmax
6226 real ( kind = 8 ) xmin
6228 if ( xmax == xmin )
then
6229 write ( *,
'(a)' )
' '
6230 write ( *,
'(a)' )
'R8_TO_I4 - Fatal error!'
6231 write ( *,
'(a)' )
' XMAX = XMIN, making a zero divisor.'
6232 write ( *,
'(a,g14.6)' )
' XMAX = ', xmax
6233 write ( *,
'(a,g14.6)' )
' XMIN = ', xmin
6238 ( ( xmax - x ) * real( ixmin, kind = 8 ) &
6239 + ( x - xmin ) * real( ixmax, kind = 8 ) ) &
6242 if ( 0.0d+00 <= temp )
then
6243 temp = temp + 0.5d+00
6245 temp = temp - 0.5d+00
6327 integer ( kind = 4 ),
parameter :: i4_huge = 2147483647
6328 integer ( kind = 4 ) k
6330 integer ( kind = 4 ) seed
6332 if ( seed == 0 )
then
6333 write ( *,
'(a)' )
' '
6334 write ( *,
'(a)' )
'R8_UNIFORM_01 - Fatal error!'
6335 write ( *,
'(a)' )
' Input value of SEED = 0.'
6341 seed = 16807 * ( seed - k * 127773 ) - k * 2836
6343 if ( seed < 0 )
then
6344 seed = seed + i4_huge
6391 integer ( kind = 4 ),
parameter :: i4_huge = 2147483647
6392 integer ( kind = 4 ) k
6394 integer ( kind = 4 ) seed
6396 if ( seed == 0 )
then
6397 write ( *,
'(a)' )
' '
6398 write ( *,
'(a)' )
'R8_UNIFORM_AB - Fatal error!'
6399 write ( *,
'(a)' )
' Input value of SEED = 0.'
6405 seed = 16807 * ( seed - k * 127773 ) - k * 2836
6407 if ( seed < 0 )
then
6408 seed = seed + i4_huge
6411 r8_uniform_ab = a + ( b - a ) * real( seed, kind = 8 ) * 4.656612875d-10
6497 integer ( kind = 4 ) digit
6498 integer ( kind = 4 ) n
6501 real ( kind = 8 ) x_copy
6510 x_copy = x_copy / 2.0d+00**digit
6520 if ( mod( n, 2 ) == 0 )
then
6584 integer ( kind = 4 ) n
6587 real ( kind = 8 ) rhi
6588 real ( kind = 8 ) rhi2
6589 real ( kind = 8 ) rlo
6590 real ( kind = 8 ) rlo2
6591 real ( kind = 8 ) rwide
6592 real ( kind = 8 ) value
6596 rlo2 = min( rlo, rhi )
6597 rhi2 = max( rlo, rhi )
6606 if ( rwide == 0.0d+00 )
then
6608 else if ( r < rlo2 )
then
6609 n = int( ( rlo2 - r ) / rwide ) + 1
6610 value = r + n * rwide
6611 if (
value == rhi )
then
6615 n = int( ( r - rlo2 ) / rwide )
6616 value = r - n * rwide
6617 if (
value == rlo )
then
6660 integer ( kind = 4 ) n
6662 real ( kind = 8 ) a(n)
6663 real ( kind = 8 ) ahi
6664 real ( kind = 8 ) alo
6665 real ( kind = 8 ) arg
6666 integer ( kind = 4 ) i
6667 real ( kind = 8 ), parameter ::
r8_pi = 3.141592653589793d+00
6671 a(1) = 0.5d+00 * ( alo + ahi )
6673 else if ( 1 < n )
then
6677 arg = real( 2 * i - 1, kind = 8 ) *
r8_pi &
6678 / real( 2 * n, kind = 8 )
6680 a(i) = 0.5d+00 * ( ( 1.0d+00 + cos( arg ) ) * alo &
6681 + ( 1.0d+00 - cos( arg ) ) * ahi )
6724 integer ( kind = 4 ),
parameter :: dim_num = 2
6726 real ( kind = 8 ) a1(dim_num)
6727 real ( kind = 8 ) a2(dim_num)
6730 r82_dist_l2 = sqrt( sum( ( a1(1:dim_num) - a2(1:dim_num) )**2 ) )
6768 integer ( kind = 4 ),
parameter :: dim_num = 2
6770 real ( kind = 8 ) a1(dim_num)
6771 real ( kind = 8 ) a2(dim_num)
6772 logical ( kind = 4 ) r82_eq
6774 if ( all( a1(1:dim_num) == a2(1:dim_num) ) )
then
6816 integer ( kind = 4 ),
parameter :: dim_num = 2
6818 real ( kind = 8 ) a1(dim_num)
6819 real ( kind = 8 ) a2(dim_num)
6820 integer ( kind = 4 ) i
6821 logical ( kind = 4 ) r82_ge
6827 if ( a2(i) < a1(i) )
then
6830 else if ( a1(i) < a2(i) )
then
6873 integer ( kind = 4 ),
parameter :: dim_num = 2
6875 real ( kind = 8 ) a1(dim_num)
6876 real ( kind = 8 ) a2(dim_num)
6877 integer ( kind = 4 ) i
6878 logical ( kind = 4 ) r82_gt
6884 if ( a2(i) < a1(i) )
then
6887 else if ( a1(i) < a2(i) )
then
6930 integer ( kind = 4 ),
parameter :: dim_num = 2
6932 real ( kind = 8 ) a1(dim_num)
6933 real ( kind = 8 ) a2(dim_num)
6934 integer ( kind = 4 ) i
6935 logical ( kind = 4 ) r82_le
6941 if ( a1(i) < a2(i) )
then
6944 else if ( a2(i) < a1(i) )
then
6987 integer ( kind = 4 ),
parameter :: dim_num = 2
6989 real ( kind = 8 ) a1(dim_num)
6990 real ( kind = 8 ) a2(dim_num)
6991 integer ( kind = 4 ) i
6992 logical ( kind = 4 ) r82_lt
6998 if ( a1(i) < a2(i) )
then
7001 else if ( a2(i) < a1(i) )
then
7044 integer ( kind = 4 ),
parameter :: dim_num = 2
7046 real ( kind = 8 ) a1(dim_num)
7047 real ( kind = 8 ) a2(dim_num)
7048 logical ( kind = 4 ) r82_ne
7050 if ( any( a1(1:dim_num) /= a2(1:dim_num) ) )
then
7088 real ( kind = 8 ) a(2)
7091 r82_norm = sqrt( a(1) * a(1) + a(2) * a(2) )
7123 real ( kind = 8 ) a(2)
7124 real ( kind = 8 ) norm
7126 norm = sqrt( a(1) * a(1) + a(2) * a(2) )
7128 if ( norm /= 0.0d+00 )
then
7129 a(1:2) = a(1:2) / norm
7170 real ( kind = 8 ) a(2)
7171 character ( len = * ) title
7173 if ( 0 < len_trim( title ) )
then
7174 write ( *,
'( 2x, a, a4, g14.6, a1, g14.6, a1 )' ) &
7175 trim( title ),
' : (', a(1),
',', a(2),
')'
7177 write ( *,
'( 2x, a1, g14.6, a1, g14.6, a1 )' )
'(', a(1),
',', a(2),
')'
7212 integer ( kind = 4 ),
parameter :: dim_num = 2
7214 real ( kind = 8 ) x(dim_num)
7215 real ( kind = 8 ) y(dim_num)
7216 real ( kind = 8 ) z(dim_num)
7218 z(1:dim_num) = x(1:dim_num)
7219 x(1:dim_num) = y(1:dim_num)
7220 y(1:dim_num) = z(1:dim_num)
7257 integer ( kind = 4 ),
parameter :: dim_num = 2
7259 real ( kind = 8 ) a(dim_num)
7263 integer ( kind = 4 ) i
7264 integer ( kind = 4 ) seed
7304 '( 2x, f8.4, '' * x^2 + '', f8.4, '' * y^2 + '', f8.4, '' * xy + '' )' ) &
7308 '( 2x, f8.4, '' * x + '', f8.4, '' * y + '', f8.4, '' = 0 '' )' ) d, e, f
7381 real ( kind = 8 ) delta
7386 integer ( kind = 4 ) type
7390 if ( a == 0.0d+00 .and. &
7391 b == 0.0d+00 .and. &
7393 if ( d == 0.0d+00 .and. e == 0.0d+00 )
then
7394 if ( f == 0.0d+00 )
then
7406 8.0d+00 * a * b * f &
7407 + 2.0d+00 * c * e * d &
7408 - 2.0d+00 * a * e * e &
7409 - 2.0d+00 * b * d * d &
7410 - 2.0d+00 * f * c * c
7412 j = 4.0d+00 * a * b - c * c
7414 if ( delta /= 0.0d+00 )
then
7415 if ( j < 0.0d+00 )
then
7417 else if ( j == 0.0d+00 )
then
7419 else if ( 0.0d+00 < j )
then
7420 if ( sign( 1.0d+00, delta ) /= sign( 1.0d+00, ( a + b ) ) )
then
7422 else if ( sign( 1.0d+00, delta ) == sign( 1.0d+00, ( a + b ) ) )
then
7426 else if ( delta == 0.0d+00 )
then
7427 if ( j < 0.0d+00 )
then
7429 else if ( 0.0d+00 < j )
then
7431 else if ( j == 0.0d+00 )
then
7433 k = 4.0d+00 * ( a + b ) * f - d * d - e * e
7435 if ( k < 0.0d+00 )
then
7437 else if ( 0.0d+00 < k )
then
7439 else if ( k == 0.0d+00 )
then
7472 integer ( kind = 4 ) type
7474 if (
type == 1 ) then
7475 write ( *,
'(a)' )
' The set of solutions forms a hyperbola.'
7476 else if (
type == 2 ) then
7477 write ( *,
'(a)' )
' The set of solutions forms a parabola.'
7478 else if (
type == 3 ) then
7479 write ( *,
'(a)' )
' The set of solutions forms an ellipse.'
7480 else if (
type == 4 ) then
7481 write ( *,
'(a)' )
' The set of solutions forms an imaginary ellipse.'
7482 write ( *,
'(a)' )
' (There are no real solutions).'
7483 else if (
type == 5 ) then
7484 write ( *,
'(a)' ) &
7485 ' The set of solutions forms a pair of intersecting lines.'
7486 else if (
type == 6 ) then
7487 write ( *,
'(a)' )
' The set of solutions is a single point.'
7488 else if (
type == 7 ) then
7489 write ( *,
'(a)' ) &
7490 ' The set of solutions form a pair of distinct parallel lines.'
7491 else if (
type == 8 ) then
7492 write ( *,
'(a)' ) &
7493 ' The set of solutions forms a pair of imaginary parallel lines.'
7494 write ( *,
'(a)' )
' (There are no real solutions).'
7495 else if (
type == 9 ) then
7496 write ( *,
'(a)' ) &
7497 ' The set of solutions forms a pair of coincident lines.'
7498 else if (
type == 10 ) then
7499 write ( *,
'(a)' )
' The set of solutions forms a single line.'
7500 else if (
type == 11 ) then
7501 write ( *,
'(a)' )
' The set of solutions is all space.'
7502 else if (
type == 12 ) then
7503 write ( *,
'(a)' )
' The set of solutions is empty.'
7505 write ( *,
'(a)' )
' This type index is unknown.'
7542 integer ( kind = 4 ) n
7544 real ( kind = 8 ) a(2,n)
7545 real ( kind = 8 ) amax(2)
7547 amax(1) = maxval( a(1,1:n) )
7548 amax(2) = maxval( a(2,1:n) )
7584 integer ( kind = 4 ) n
7586 real ( kind = 8 ) a(2,n)
7587 real ( kind = 8 ) amin(2)
7589 amin(1) = minval( a(1,1:n) )
7590 amin(2) = minval( a(2,1:n) )
7636 integer ( kind = 4 ) n
7637 integer ( kind = 4 ),
parameter :: dim_num = 2
7639 real ( kind = 8 ) a(dim_num,n)
7640 integer ( kind = 4 ) i
7641 integer ( kind = 4 ) order
7657 a(1,1) < a(1,i) .or. &
7658 ( a(1,1) == a(1,i) .and. a(2,1) < a(2,i) ) &
7670 a(1,i) < a(1,1) .or. &
7671 ( a(1,i) == a(1,1) .and. a(2,i) < a(2,1) ) &
7695 if ( order == 1 )
then
7698 a(1,i) < a(1,i-1) .or. &
7699 ( a(1,i) == a(1,i-1) .and. a(2,i) < a(2,i-1) ) &
7705 else if ( order == 2 )
then
7708 a(1,i) < a(1,i-1) .or. &
7709 ( a(1,i) == a(1,i-1) .and. a(2,i) < a(2,i-1) ) &
7714 a(1,i) == a(1,i-1) .and. a(2,i) == a(2,i-1) )
then
7718 else if ( order == 3 )
then
7721 a(1,i-1) < a(1,i) .or. &
7722 ( a(1,i-1) == a(1,i) .and. a(2,i-1) < a(2,i) ) &
7728 else if ( order == 4 )
then
7731 a(1,i-1) < a(1,i) .or. &
7732 ( a(1,i-1) == a(1,i) .and. a(2,i-1) < a(2,i) ) &
7736 else if ( a(1,i) == a(1,i-1) .and. a(2,i) == a(2,i-1) )
then
7803 integer ( kind = 4 ) n
7804 integer ( kind = 4 ),
parameter :: dim_num = 2
7806 real ( kind = 8 ) a(dim_num,n)
7807 integer ( kind = 4 ) i
7808 real ( kind = 8 ) key(dim_num)
7809 integer ( kind = 4 ) l
7810 integer ( kind = 4 ) m
7811 integer ( kind = 4 ) r
7812 logical ( kind = 4 ) r8vec_eq
7813 logical ( kind = 4 ) r8vec_gt
7814 logical ( kind = 4 ) r8vec_lt
7817 write ( *,
'(a)' )
' '
7818 write ( *,
'(a)' )
'R82VEC_PART_QUICK_A - Fatal error!'
7819 write ( *,
'(a)' )
' N < 1.'
7820 write ( *,
'(a,i8)' )
' N = ', n
7822 else if ( n == 1 )
then
7828 key(1:dim_num) = a(1:dim_num,1)
7838 if ( r8vec_gt( dim_num, a(1:dim_num,l+1), key(1:dim_num) ) )
then
7840 call r8vec_swap ( dim_num, a(1:dim_num,r), a(1:dim_num,l+1) )
7841 else if ( r8vec_eq( dim_num, a(1:dim_num,l+1), key(1:dim_num) ) )
then
7843 call r8vec_swap ( dim_num, a(1:dim_num,m), a(1:dim_num,l+1) )
7845 else if ( r8vec_lt( dim_num, a(1:dim_num,l+1), key(1:dim_num) ) )
then
7854 a(1:dim_num,i) = a(1:dim_num,i+m)
7860 a(i,l+1:l+m) = key(i)
7919 integer ( kind = 4 ) n
7920 integer ( kind = 4 ),
parameter :: dim_num = 2
7922 real ( kind = 8 ) a(2,n)
7923 real ( kind = 8 ) a_temp(2)
7924 integer ( kind = 4 ) ierror
7925 integer ( kind = 4 ) iget
7926 integer ( kind = 4 ) iput
7927 integer ( kind = 4 ) istart
7928 integer ( kind = 4 ) p(n)
7936 if ( p(istart) < 0 )
then
7938 else if ( p(istart) == istart )
then
7940 p(istart) = - p(istart)
7944 a_temp(1:2) = a(1:2,istart)
7956 if ( iget < 1 .or. n < iget )
then
7957 write ( *,
'(a)' )
' '
7958 write ( *,
'(a)' )
'R82VEC_PERMUTE - Fatal error!'
7959 write ( *,
'(a)' )
' A permutation index is out of range.'
7960 write ( *,
'(a,i8,a,i8)' )
' P(', iput,
') = ', iget
7964 if ( iget == istart )
then
7965 a(1:2,iput) = a_temp(1:2)
7969 a(1:2,iput) = a(1:2,iget)
8015 integer ( kind = 4 ) n
8016 integer ( kind = 4 ),
parameter :: dim_num = 2
8018 real ( kind = 8 ) a(dim_num,n)
8019 integer ( kind = 4 ) i
8020 character ( len = * ) title
8022 write ( *,
'(a)' )
' '
8023 write ( *,
'(a)' ) trim( title )
8024 write ( *,
'(a)' )
' '
8026 write ( *,
'(2x,i8,(5g14.6))' ) i, a(1:dim_num,i)
8073 integer ( kind = 4 ) n
8075 real ( kind = 8 ) a(2,n)
8076 integer ( kind = 4 ) i
8077 integer ( kind = 4 ) max_print
8078 character ( len = * ) title
8080 if ( max_print <= 0 )
then
8088 write ( *,
'(a)' )
' '
8089 write ( *,
'(a)' ) trim( title )
8090 write ( *,
'(a)' )
' '
8092 if ( n <= max_print )
then
8095 write ( *,
'(2x,i8,a,1x,g14.6,2x,g14.6)' ) i,
':', a(1:2,i)
8098 else if ( 3 <= max_print )
then
8100 do i = 1, max_print - 2
8101 write ( *,
'(2x,i8,a,1x,g14.6,2x,g14.6)' ) i,
':', a(1:2,i)
8103 write ( *,
'(a)' )
' ........ .............. ..............'
8105 write ( *,
'(2x,i8,a,1x,g14.6,2x,g14.6)' ) i,
':', a(1:2,i)
8109 do i = 1, max_print - 1
8110 write ( *,
'(2x,i8,a,1x,g14.6,2x,g14.6)' ) i,
':', a(1:2,i)
8113 write ( *,
'(2x,i8,a,1x,g14.6,2x,g14.6,2x,a)' ) i,
':', a(1:2,i), &
8114 '...more entries...'
8169 integer ( kind = 4 ) n
8170 integer ( kind = 4 ),
parameter :: dim_num = 2
8172 real ( kind = 8 ) a(dim_num,n)
8173 real ( kind = 8 ) aval(dim_num)
8174 integer ( kind = 4 ) i
8175 integer ( kind = 4 ) indx(n)
8176 integer ( kind = 4 ) indxt
8177 integer ( kind = 4 ) ir
8178 integer ( kind = 4 ) j
8179 integer ( kind = 4 ) l
8202 aval(1:dim_num) = a(1:dim_num,indxt)
8207 aval(1:dim_num) = a(1:dim_num,indxt)
8221 do while ( j <= ir )
8224 if ( a(1,indx(j)) < a(1,indx(j+1)) .or. &
8225 ( a(1,indx(j)) == a(1,indx(j+1)) .and. &
8226 a(2,indx(j)) < a(2,indx(j+1)) ) )
then
8231 if ( aval(1) < a(1,indx(j)) .or. &
8232 ( aval(1) == a(1,indx(j)) .and. &
8233 aval(2) < a(2,indx(j)) ) )
then
8281 integer ( kind = 4 ),
parameter :: level_max = 30
8282 integer ( kind = 4 ) n
8283 integer ( kind = 4 ),
parameter :: dim_num = 2
8285 real ( kind = 8 ) a(dim_num,n)
8286 integer ( kind = 4 ) base
8287 integer ( kind = 4 ) l_segment
8288 integer ( kind = 4 ) level
8289 integer ( kind = 4 ) n_segment
8290 integer ( kind = 4 ) rsave(level_max)
8291 integer ( kind = 4 ) r_segment
8294 write ( *,
'(a)' )
' '
8295 write ( *,
'(a)' )
'R82VEC_SORT_QUICK_A - Fatal error!'
8296 write ( *,
'(a)' )
' N < 1.'
8297 write ( *,
'(a,i8)' )
' N = ', n
8299 else if ( n == 1 )
then
8304 rsave(level) = n + 1
8316 if ( 1 < l_segment )
then
8318 if ( level_max < level )
then
8319 write ( *,
'(a)' )
' '
8320 write ( *,
'(a)' )
'R82VEC_SORT_QUICK_A - Fatal error!'
8321 write ( *,
'(a,i8)' )
' Exceeding recursion maximum of ', level_max
8326 n_segment = l_segment
8327 rsave(level) = r_segment + base - 1
8332 else if ( r_segment < n_segment )
then
8334 n_segment = n_segment + 1 - r_segment
8335 base = base + r_segment - 1
8343 if ( level <= 1 )
then
8348 n_segment = rsave(level-1) - rsave(level)
8351 if ( 0 < n_segment )
then
8398 r83_norm = sqrt( x * x + y * y + z * z )
8430 real ( kind = 8 ) norm
8435 norm = sqrt( x * x + y * y + z * z )
8437 if ( norm /= 0.0d+00 )
then
8481 character ( len = * ) title
8486 if ( 0 < len_trim( title ) )
then
8487 write ( *,
'( 2x, a, a4, g14.6, a1, g14.6, a1, g14.6, a1 )' ) &
8488 trim( title ),
' : (', x,
',', y,
',', z,
')'
8490 write ( *,
'( 2x, a1, g14.6, a1, g14.6, a1, g14.6, a1 )' ) &
8491 '(', x,
',', y,
',', z,
')'
8525 integer ( kind = 4 ),
parameter :: dim_num = 3
8527 real ( kind = 8 ) x(dim_num)
8528 real ( kind = 8 ) y(dim_num)
8529 real ( kind = 8 ) z(dim_num)
8531 z(1:dim_num) = x(1:dim_num)
8532 x(1:dim_num) = y(1:dim_num)
8533 y(1:dim_num) = z(1:dim_num)
8569 integer ( kind = 4 ) n
8571 real ( kind = 8 ) a(3,n)
8572 real ( kind = 8 ) amax(3)
8573 integer ( kind = 4 ) i
8576 amax(i) = maxval( a(i,1:n) )
8613 integer ( kind = 4 ) n
8615 real ( kind = 8 ) a(3,n)
8616 real ( kind = 8 ) amin(3)
8617 integer ( kind = 4 ) i
8620 amin(i) = minval( a(i,1:n) )
8658 integer ( kind = 4 ) n
8659 integer ( kind = 4 ),
parameter :: dim_num = 3
8661 integer ( kind = 4 ) i
8662 real ( kind = 8 ) norm
8663 real ( kind = 8 ) x(dim_num,n)
8667 norm = sqrt( sum( x(1:dim_num,i)**2 ) )
8669 if ( norm /= 0.0d+00 )
then
8670 x(1:dim_num,i) = x(1:dim_num,i) / norm
8719 integer ( kind = 4 ) n
8721 real ( kind = 8 ) a(3,n)
8722 integer ( kind = 4 ) i
8723 integer ( kind = 4 ) max_print
8724 character ( len = * ) title
8726 if ( max_print <= 0 )
then
8734 write ( *,
'(a)' )
' '
8735 write ( *,
'(a)' ) trim( title )
8736 write ( *,
'(a)' )
' '
8738 if ( n <= max_print )
then
8741 write ( *,
'(2x,i8,a,1x,g14.6,2x,g14.6,2x,g14.6)' ) i,
':', a(1:3,i)
8744 else if ( 3 <= max_print )
then
8746 do i = 1, max_print - 2
8747 write ( *,
'(2x,i8,a,1x,g14.6,2x,g14.6,2x,g14.6)' ) i,
':', a(1:3,i)
8749 write ( *,
'(a)' ) &
8750 ' ........ .............. .............. ..............'
8752 write ( *,
'(2x,i8,a,1x,g14.6,2x,g14.6,2x,g14.6)' ) i,
':', a(1:3,i)
8756 do i = 1, max_print - 1
8757 write ( *,
'(2x,i8,a,1x,g14.6,2x,g14.6,2x,g14.6)' ) i,
':', a(1:3,i)
8760 write ( *,
'(2x,i8,a,1x,g14.6,2x,g14.6,2x,g14.6,2x,a)' ) i,
':', a(1:3,i), &
8761 '...more entries...'
8795 integer ( kind = 4 ),
parameter :: dim_num = 4
8797 real ( kind = 8 ) norm
8798 real ( kind = 8 ) v(dim_num)
8800 norm = sqrt( sum( v(1:dim_num)**2 ) )
8802 if ( norm /= 0.0d+00 )
then
8803 v(1:dim_num) = v(1:dim_num) / norm
8855 integer ( kind = 4 ) l
8856 integer ( kind = 4 ) lfat
8857 integer ( kind = 4 ) m
8858 integer ( kind = 4 ) mfat
8859 integer ( kind = 4 ) n
8860 integer ( kind = 4 ) nfat
8862 integer ( kind = 4 ) i
8863 integer ( kind = 4 ) ihi
8864 integer ( kind = 4 ) ii
8865 integer ( kind = 4 ) iii
8866 integer ( kind = 4 ) ip1
8867 integer ( kind = 4 ) j
8868 integer ( kind = 4 ) jhi
8869 integer ( kind = 4 ) jj
8870 integer ( kind = 4 ) jjj
8871 integer ( kind = 4 ) jp1
8872 integer ( kind = 4 ) k
8873 integer ( kind = 4 ) khi
8874 integer ( kind = 4 ) kk
8875 integer ( kind = 4 ) kkk
8876 integer ( kind = 4 ) kp1
8880 real ( kind = 8 ) x(l,m,n)
8881 real ( kind = 8 ) x000
8882 real ( kind = 8 ) x001
8883 real ( kind = 8 ) x010
8884 real ( kind = 8 ) x011
8885 real ( kind = 8 ) x100
8886 real ( kind = 8 ) x101
8887 real ( kind = 8 ) x110
8888 real ( kind = 8 ) x111
8889 real ( kind = 8 ) xfat((l-1)*(lfat+1)+1,(m-1)*(mfat+1)+1,(n-1)*(nfat+1)+1)
8940 x111 = x(ip1,jp1,kp1)
8944 r = real( ii, kind = 8 ) &
8945 / real( ihi + 1, kind = 8 )
8949 s = real( jj, kind = 8 ) &
8950 / real( jhi + 1, kind = 8 )
8954 t = real( kk, kind = 8 ) &
8955 / real( khi + 1, kind = 8 )
8957 iii = 1 + ( i - 1 ) * ( lfat + 1 ) + ii
8958 jjj = 1 + ( j - 1 ) * ( mfat + 1 ) + jj
8959 kkk = 1 + ( k - 1 ) * ( nfat + 1 ) + kk
8961 xfat(iii,jjj,kkk) = &
8962 x000 * ( 1.0d+00 - r ) * ( 1.0d+00 - s ) * ( 1.0d+00 - t ) &
8963 + x001 * ( 1.0d+00 - r ) * ( 1.0d+00 - s ) * ( t ) &
8964 + x010 * ( 1.0d+00 - r ) * ( s ) * ( 1.0d+00 - t ) &
8965 + x011 * ( 1.0d+00 - r ) * ( s ) * ( t ) &
8966 + x100 * ( r ) * ( 1.0d+00 - s ) * ( 1.0d+00 - t ) &
8967 + x101 * ( r ) * ( 1.0d+00 - s ) * ( t ) &
8968 + x110 * ( r ) * ( s ) * ( 1.0d+00 - t ) &
8969 + x111 * ( r ) * ( s ) * ( t )
9017 integer ( kind = 4 ) l
9018 integer ( kind = 4 ) m
9019 integer ( kind = 4 ) n
9021 real ( kind = 8 ) a(l,m,n)
9022 integer ( kind = 4 ) i
9023 integer ( kind = 4 ) j
9024 integer ( kind = 4 ) jhi
9025 integer ( kind = 4 ) jlo
9026 integer ( kind = 4 ) k
9027 character ( len = * ) title
9029 write ( *,
'(a)' )
' '
9030 write ( *,
'(a)' ) trim( title )
9034 write ( *,
'(a)' )
' '
9035 write ( *,
'(a,i8)' )
' K = ', k
9038 jhi = min( jlo + 4, m )
9039 write ( *,
'(a)' )
' '
9040 write ( *,
'(10x,5(i8,6x))' ) (j, j = jlo, jhi )
9041 write ( *,
'(a)' )
' '
9043 write ( *,
'(2x,i8,5g14.6)' ) i, a(i,jlo:jhi,k)
9091 integer ( kind = 4 ) lda
9092 integer ( kind = 4 ) m
9093 integer ( kind = 4 ) n
9095 real ( kind = 8 ) a(lda,n)
9096 character ( len = * ) title
9144 integer ( kind = 4 ),
parameter :: incx = 5
9145 integer ( kind = 4 ) lda
9146 integer ( kind = 4 ) m
9147 integer ( kind = 4 ) n
9149 real ( kind = 8 ) a(lda,n)
9150 character ( len = 14 ) ctemp(incx)
9151 integer ( kind = 4 ) i
9152 integer ( kind = 4 ) i2hi
9153 integer ( kind = 4 ) i2lo
9154 integer ( kind = 4 ) ihi
9155 integer ( kind = 4 ) ilo
9156 integer ( kind = 4 ) inc
9157 integer ( kind = 4 ) j
9158 integer ( kind = 4 ) j2
9159 integer ( kind = 4 ) j2hi
9160 integer ( kind = 4 ) j2lo
9161 integer ( kind = 4 ) jhi
9162 integer ( kind = 4 ) jlo
9163 character ( len = * ) title
9165 write ( *,
'(a)' )
' '
9166 write ( *,
'(a)' ) trim( title )
9168 if ( m <= 0 .or. n <= 0 )
then
9169 write ( *,
'(a)' )
' '
9170 write ( *,
'(a)' )
' (None)'
9174 do j2lo = max( jlo, 1 ), min( jhi, n ), incx
9176 j2hi = j2lo + incx - 1
9177 j2hi = min( j2hi, n )
9178 j2hi = min( j2hi, jhi )
9180 inc = j2hi + 1 - j2lo
9182 write ( *,
'(a)' )
' '
9186 write ( ctemp(j2),
'(i8,6x)' ) j
9189 write ( *,
'('' Col '',5a14)' ) ctemp(1:inc)
9190 write ( *,
'(a)' )
' Row'
9191 write ( *,
'(a)' )
' '
9193 i2lo = max( ilo, 1 )
9194 i2hi = min( ihi, m )
9202 if ( a(i,j) == real( int( a(i,j) ), kind = 8 ) )
then
9203 write ( ctemp(j2),
'(f8.0,6x)' ) a(i,j)
9205 write ( ctemp(j2),
'(g14.6)' ) a(i,j)
9210 write ( *,
'(i5,a,5a14)' ) i,
':', ( ctemp(j), j = 1, inc )
9266 integer ( kind = 4 ) lda
9267 integer ( kind = 4 ) m
9268 integer ( kind = 4 ) n
9270 real ( kind = 8 ) a1(lda,n)
9271 real ( kind = 8 ) a2(m,n)
9273 a2(1:m,1:n) = a1(1:m,1:n)
9331 integer ( kind = 4 ) m
9332 integer ( kind = 4 ) n
9334 real ( kind = 8 ) a(m,n)
9335 integer ( kind = 4 ) i
9336 integer ( kind = 4 ) j
9337 integer ( kind = 4 ) k
9338 integer ( kind = 4 ) value
9342 if ( i < 1 .or. n < i )
then
9343 write ( *,
'(a)' )
' '
9344 write ( *,
'(a)' )
'R8COL_COMPARE - Fatal error!'
9345 write ( *,
'(a)' )
' Column index I is out of bounds.'
9346 write ( *,
'(a,i8)' )
' I = ', i
9350 if ( j < 1 .or. n < j )
then
9351 write ( *,
'(a)' )
' '
9352 write ( *,
'(a)' )
'R8COL_COMPARE - Fatal error!'
9353 write ( *,
'(a)' )
' Column index J is out of bounds.'
9354 write ( *,
'(a,i8)' )
' J = ', j
9368 if ( a(k,i) < a(k,j) )
then
9371 else if ( a(k,j) < a(k,i) )
then
9424 integer ( kind = 4 ) m
9425 integer ( kind = 4 ) n
9427 real ( kind = 8 ) a(m,n)
9428 integer ( kind = 4 ) i4_uniform_ab
9429 integer ( kind = 4 ) j1
9430 integer ( kind = 4 ) j2
9431 integer ( kind = 4 ) n_unique
9432 integer ( kind = 4 ) seed
9433 real ( kind = 8 ) temp(m)
9435 if ( n_unique < 1 .or. n < n_unique )
then
9436 write ( *,
'(a)' )
' '
9437 write ( *,
'(a)' )
'R8COL_DUPLICATES - Fatal error!'
9438 write ( *,
'(a)' )
' 1 <= N_UNIQUE <= N is required.'
9446 do j1 = n_unique + 1, n
9447 j2 = i4_uniform_ab( 1, n_unique, seed )
9448 a(1:m,j1) = a(1:m,j2)
9454 j2 = i4_uniform_ab( j1, n, seed )
9455 temp(1:m) = a(1:m,j1)
9456 a(1:m,j1) = a(1:m,j2)
9457 a(1:m,j2) = temp(1:m)
9520 integer ( kind = 4 ) m
9521 integer ( kind = 4 ) n
9523 real ( kind = 8 ) a(m,n)
9524 integer ( kind = 4 ) col
9525 integer ( kind = 4 ) i
9526 integer ( kind = 4 ) j
9527 real ( kind = 8 ) x(m)
9536 if ( x(i) /= a(i,j) )
then
9542 if ( col /= -1 )
then
9589 integer ( kind = 4 ) m
9590 integer ( kind = 4 ) n
9592 real ( kind = 8 ) a(m,n)
9593 integer ( kind = 4 ) first_index(n)
9594 integer ( kind = 4 ) j1
9595 integer ( kind = 4 ) j2
9596 real ( kind = 8 ) tol
9598 first_index(1:n) = -1
9602 if ( first_index(j1) == -1 )
then
9604 first_index(j1) = j1
9607 if ( maxval( abs( a(1:m,j1) - a(1:m,j2) ) ) <= tol )
then
9608 first_index(j2) = j1
9691 integer ( kind = 4 ) m
9692 integer ( kind = 4 ) n_max
9694 real ( kind = 8 ) a(m,n_max)
9695 integer ( kind = 4 ) col
9696 integer ( kind = 4 ) high
9697 integer ( kind = 4 ) isgn
9698 integer ( kind = 4 ) j
9699 integer ( kind = 4 ) low
9700 integer ( kind = 4 ) mid
9701 integer ( kind = 4 ) n
9702 real ( kind = 8 ) x(m)
9706 if ( n_max <= n )
then
9722 if ( high < low )
then
9727 mid = ( low + high ) / 2
9731 if ( isgn == 0 )
then
9734 else if ( isgn == -1 )
then
9736 else if ( isgn == +1 )
then
9745 a(1:m,j+1) = a(1:m,j)
9789 integer ( kind = 4 ) m
9790 integer ( kind = 4 ) n
9792 real ( kind = 8 ) a(m,n)
9793 real ( kind = 8 ) amax(n)
9794 integer ( kind = 4 ) j
9798 amax(j) = maxval( a(1:m,j) )
9838 integer ( kind = 4 ) m
9839 integer ( kind = 4 ) n
9841 real ( kind = 8 ) a(m,n)
9842 real ( kind = 8 ) amax
9843 integer ( kind = 4 ) i
9844 integer ( kind = 4 ) imax(n)
9845 integer ( kind = 4 ) j
9852 if ( amax < a(i,j) )
then
9893 integer ( kind = 4 ) m
9894 integer ( kind = 4 ) n
9896 real ( kind = 8 ) a(m,n)
9897 integer ( kind = 4 ) i
9898 integer ( kind = 4 ) i_big
9899 integer ( kind = 4 ) j
9905 if ( abs( a(i_big,j) ) < abs( a(i,j) ) )
then
9910 if ( a(i_big,j) /= 0.0d+00 )
then
9911 a(1:m,j) = a(1:m,j) / a(i_big,j)
9960 integer ( kind = 4 ) m
9961 integer ( kind = 4 ) n
9963 real ( kind = 8 ) a(m,n)
9964 integer ( kind = 4 ) j
9965 real ( kind = 8 ) mean(n)
9968 mean(j) = sum( a(1:m,j) )
9971 mean(1:n) = mean(1:n) / real( m, kind = 8 )
10008 integer ( kind = 4 ) m
10009 integer ( kind = 4 ) n
10011 real ( kind = 8 ) a(m,n)
10012 real ( kind = 8 ) amin(n)
10013 integer ( kind = 4 ) j
10017 amin(j) = minval( a(1:m,j) )
10057 integer ( kind = 4 ) m
10058 integer ( kind = 4 ) n
10060 real ( kind = 8 ) a(m,n)
10061 real ( kind = 8 ) amin
10062 integer ( kind = 4 ) i
10063 integer ( kind = 4 ) imin(n)
10064 integer ( kind = 4 ) j
10071 if ( a(i,j) < amin )
then
10111 integer ( kind = 4 ) m
10112 integer ( kind = 4 ) n
10114 real ( kind = 8 ) a(m,n)
10115 real ( kind = 8 ) c
10116 integer ( kind = 4 ) i
10117 integer ( kind = 4 ) j
10124 if ( abs( c ) < abs( a(i,j) ) )
then
10129 if ( c /= 0.0d+00 )
then
10130 a(1:m,j) = a(1:m,j) / c
10199 integer ( kind = 4 ) m
10200 integer ( kind = 4 ) n
10202 real ( kind = 8 ) a(m,n)
10203 integer ( kind = 4 ) j
10204 integer ( kind = 4 ) k
10205 real ( kind = 8 ) key(m)
10206 integer ( kind = 4 ) l
10207 integer ( kind = 4 ) r
10208 logical ( kind = 4 ) r8vec_eq
10209 logical ( kind = 4 ) r8vec_gt
10210 logical ( kind = 4 ) r8vec_lt
10213 write ( *,
'(a)' )
' '
10214 write ( *,
'(a)' )
'R8COL_PART_QUICK_A - Fatal error!'
10215 write ( *,
'(a)' )
' N < 1.'
10225 key(1:m) = a(1:m,1)
10235 if ( r8vec_gt( m, a(1:m,l+1), key(1:m) ) )
then
10238 else if ( r8vec_eq( m, a(1:m,l+1), key(1:m) ) )
then
10242 else if ( r8vec_lt( m, a(1:m,l+1), key(1:m) ) )
then
10251 a(1:m,j) = a(1:m,j+k)
10256 do j = l - k + 1, l
10257 a(1:m,j) = key(1:m)
10324 integer ( kind = 4 ) m
10325 integer ( kind = 4 ) n
10327 real ( kind = 8 ) a(m,n)
10328 real ( kind = 8 ) a_temp(m)
10329 integer ( kind = 4 ) ierror
10330 integer ( kind = 4 ) iget
10331 integer ( kind = 4 ) iput
10332 integer ( kind = 4 ) istart
10333 integer ( kind = 4 ) p(n)
10341 if ( p(istart) < 0 )
then
10345 else if ( p(istart) == istart )
then
10347 p(istart) = - p(istart)
10352 a_temp(1:m) = a(1:m,istart)
10362 p(iput) = - p(iput)
10364 if ( iget < 1 .or. n < iget )
then
10365 write ( *,
'(a)' )
' '
10366 write ( *,
'(a)' )
'R8COL_PERMUTE - Fatal error!'
10367 write ( *,
'(a)' )
' A permutation index is out of range.'
10368 write ( *,
'(a,i8,a,i8)' )
' P(', iput,
') = ', iget
10372 if ( iget == istart )
then
10373 a(1:m,iput) = a_temp(1:m)
10377 a(1:m,iput) = a(1:m,iget)
10435 integer ( kind = 4 ) m
10436 integer ( kind = 4 ) n
10438 real ( kind = 8 ) a(m,n)
10439 integer ( kind = 4 ) j
10440 integer ( kind = 4 ) jhi
10441 real ( kind = 8 ) t(m)
10447 a(1:m,j) = a(1:m,n+1-j)
10448 a(1:m,n+1-j) = t(1:m)
10489 integer ( kind = 4 ) m
10490 integer ( kind = 4 ) n
10492 real ( kind = 8 ) a(m,n)
10493 real ( kind = 8 ) d
10494 real ( kind = 8 ) d_max
10495 real ( kind = 8 ) d_min
10496 integer ( kind = 4 ) j1
10497 integer ( kind = 4 ) j2
10499 d_min = huge( d_min )
10504 d = maxval( abs( a(1:m,j1) - a(1:m,j2) ) )
10505 d_min = min( d_min, d )
10506 d_max = max( d_max, d )
10555 integer ( kind = 4 ) m
10556 integer ( kind = 4 ) n
10558 real ( kind = 8 ) a(m,n)
10559 integer ( kind = 4 ) i
10560 integer ( kind = 4 ) indx
10561 integer ( kind = 4 ) isgn
10562 integer ( kind = 4 ) j1
10563 integer ( kind = 4 ) j2
10564 real ( kind = 8 ) t(m)
10589 if ( 0 < indx )
then
10592 a(1:m,j1) = a(1:m,j2)
10597 else if ( indx < 0 )
then
10603 if ( a(i,j1) < a(i,j2) )
then
10606 else if ( a(i,j2) < a(i,j1) )
then
10615 else if ( indx == 0 )
then
10674 integer ( kind = 4 ) m
10675 integer ( kind = 4 ) n
10677 real ( kind = 8 ) a(m,n)
10678 real ( kind = 8 ) column(m)
10679 integer ( kind = 4 ) i
10680 integer ( kind = 4 ) indx(n)
10681 integer ( kind = 4 ) indxt
10682 integer ( kind = 4 ) ir
10683 integer ( kind = 4 ) isgn
10684 integer ( kind = 4 ) j
10685 integer ( kind = 4 ) l
10708 column(1:m) = a(1:m,indxt)
10713 column(1:m) = a(1:m,indxt)
10717 if ( ir == 1 )
then
10727 do while ( j <= ir )
10731 call r8vec_compare ( m, a(1:m,indx(j)), a(1:m,indx(j+1)), isgn )
10733 if ( isgn < 0 )
then
10741 if ( isgn < 0 )
then
10793 integer ( kind = 4 ),
parameter :: level_max = 30
10794 integer ( kind = 4 ) m
10795 integer ( kind = 4 ) n
10797 real ( kind = 8 ) a(m,n)
10798 integer ( kind = 4 ) base
10799 integer ( kind = 4 ) l_segment
10800 integer ( kind = 4 ) level
10801 integer ( kind = 4 ) n_segment
10802 integer ( kind = 4 ) rsave(level_max)
10803 integer ( kind = 4 ) r_segment
10810 write ( *,
'(a)' )
' '
10811 write ( *,
'(a)' )
'R8COL_SORT_QUICK_A - Fatal error!'
10812 write ( *,
'(a)' )
' N < 1.'
10813 write ( *,
'(a,i8)' )
' N = ', n
10822 rsave(level) = n + 1
10831 l_segment, r_segment )
10835 if ( 1 < l_segment )
then
10837 if ( level_max < level )
then
10838 write ( *,
'(a)' )
' '
10839 write ( *,
'(a)' )
'R8COL_SORT_QUICK_A - Fatal error!'
10840 write ( *,
'(a,i8)' )
' Exceeding recursion maximum of ', level_max
10845 n_segment = l_segment
10846 rsave(level) = r_segment + base - 1
10851 else if ( r_segment < n_segment )
then
10853 n_segment = n_segment + 1 - r_segment
10854 base = base + r_segment - 1
10862 if ( level <= 1 )
then
10866 base = rsave(level)
10867 n_segment = rsave(level-1) - rsave(level)
10870 if ( 0 < n_segment )
then
10968 integer ( kind = 4 ) m
10969 integer ( kind = 4 ) n
10970 integer ( kind = 4 ) unique_num
10972 real ( kind = 8 ) a(m,n)
10973 real ( kind = 8 ) diff
10974 integer ( kind = 4 ) i
10975 integer ( kind = 4 ) i2
10976 integer ( kind = 4 ) j
10977 integer ( kind = 4 ) k
10978 real ( kind = 8 ) tol
10979 integer ( kind = 4 ) undx(unique_num)
10980 logical ( kind = 4 ) unique
10981 integer ( kind = 4 ) xdnu(n)
11007 diff = maxval( abs( a(1:m,i) - a(1:m,i2) ) )
11008 if ( diff <= tol )
then
11064 integer ( kind = 4 ) m
11065 integer ( kind = 4 ) n
11067 real ( kind = 8 ) a(m,n)
11068 real ( kind = 8 ) diff
11069 integer ( kind = 4 ) i
11070 integer ( kind = 4 ) j
11071 real ( kind = 8 ) tol
11072 logical ( kind = 4 ) unique
11073 integer ( kind = 4 ) unique_num
11086 do j = 1, unique_num
11087 diff = maxval( abs( a(1:m,j) - a(1:m,i) ) )
11088 if ( diff <= tol )
then
11095 unique_num = unique_num + 1
11096 a(1:m,unique_num) = a(1:m,i)
11153 integer ( kind = 4 ) m
11154 integer ( kind = 4 ) n
11156 real ( kind = 8 ) a(m,n)
11157 real ( kind = 8 ) diff
11158 integer ( kind = 4 ) i
11159 integer ( kind = 4 ) i2
11160 integer ( kind = 4 ) j
11161 integer ( kind = 4 ) k
11162 real ( kind = 8 ) tol
11163 integer ( kind = 4 ) undx(n)
11164 logical ( kind = 4 ) unique
11165 integer ( kind = 4 ) unique_num
11186 diff = maxval( abs( a(1:m,i) - a(1:m,i2) ) )
11187 if ( diff <= tol )
then
11289 integer ( kind = 4 ) m
11290 integer ( kind = 4 ) n
11291 integer ( kind = 4 ) unique_num
11293 real ( kind = 8 ) a(m,n)
11294 integer ( kind = 4 ) i
11295 integer ( kind = 4 ) j
11296 integer ( kind = 4 ) undx(unique_num)
11297 integer ( kind = 4 ) xdnu(n)
11308 if ( any( a(1:m,i) /= a(1:m,j) ) )
then
11356 integer ( kind = 4 ) m
11357 integer ( kind = 4 ) n
11359 real ( kind = 8 ) a(m,n)
11360 integer ( kind = 4 ) j1
11361 integer ( kind = 4 ) j2
11362 integer ( kind = 4 ) unique_num
11373 if ( any( a(1:m,j1) /= a(1:m,j2) ) )
then
11375 a(1:m,j1) = a(1:m,j2)
11420 integer ( kind = 4 ) m
11421 integer ( kind = 4 ) n
11423 real ( kind = 8 ) a(m,n)
11424 integer ( kind = 4 ) j1
11425 integer ( kind = 4 ) j2
11426 integer ( kind = 4 ) unique_num
11439 if ( any( a(1:m,j1) /= a(1:m,j2) ) )
then
11440 unique_num = unique_num + 1
11486 integer ( kind = 4 ) m
11487 integer ( kind = 4 ) n
11489 real ( kind = 8 ) a(m,n)
11490 integer ( kind = 4 ) i
11491 integer ( kind = 4 ) indx
11492 integer ( kind = 4 ) isgn
11493 integer ( kind = 4 ) j
11494 integer ( kind = 4 ) key
11500 if ( key < 1 .or. n < key )
then
11501 write ( *,
'(a)' )
' '
11502 write ( *,
'(a)' )
'R8COL_SORTR_A - Fatal error!'
11503 write ( *,
'(a)' )
' The value of KEY is not a legal column index.'
11504 write ( *,
'(a,i8)' )
' KEY = ', key
11505 write ( *,
'(a,i8)' )
' N = ', n
11524 if ( 0 < indx )
then
11530 else if ( indx < 0 )
then
11532 if ( a(i,key) < a(j,key) )
then
11538 else if ( indx == 0 )
then
11581 integer ( kind = 4 ) m
11582 integer ( kind = 4 ) n
11584 real ( kind = 8 ) a(m,n)
11585 real ( kind = 8 ) colsum(n)
11586 integer ( kind = 4 ) j
11589 colsum(j) = sum( a(1:m,j) )
11645 integer ( kind = 4 ) m
11646 integer ( kind = 4 ) n
11648 real ( kind = 8 ) a(m,n)
11649 real ( kind = 8 ) col(m)
11650 integer ( kind = 4 ) j1
11651 integer ( kind = 4 ) j2
11653 if ( j1 < 1 .or. n < j1 .or. j2 < 1 .or. n < j2 )
then
11654 write ( *,
'(a)' )
' '
11655 write ( *,
'(a)' )
'R8COL_SWAP - Fatal error!'
11656 write ( *,
'(a)' )
' J1 or J2 is out of bounds.'
11657 write ( *,
'(a,i8)' )
' J1 = ', j1
11658 write ( *,
'(a,i8)' )
' J2 = ', j2
11659 write ( *,
'(a,i8)' )
' NCOL = ', n
11663 if ( j1 == j2 )
then
11667 col(1:m) = a(1:m,j1)
11668 a(1:m,j1) = a(1:m,j2)
11669 a(1:m,j2) = col(1:m)
11719 integer ( kind = 4 ) m
11720 integer ( kind = 4 ) n
11722 real ( kind = 8 ) a(m,n)
11723 integer ( kind = 4 ) j
11724 integer ( kind = 4 ) k
11725 real ( kind = 8 ) x(m*n)
11729 x(k:k+m-1) = a(1:m,j)
11835 integer ( kind = 4 ) m
11836 integer ( kind = 4 ) n
11837 integer ( kind = 4 ) unique_num
11839 real ( kind = 8 ) a(m,n)
11840 real ( kind = 8 ) diff
11841 integer ( kind = 4 ) i
11842 integer ( kind = 4 ) indx(n)
11843 integer ( kind = 4 ) j
11844 integer ( kind = 4 ) k
11845 real ( kind = 8 ) tol
11846 integer ( kind = 4 ) undx(unique_num)
11847 logical ( kind = 4 ) unique
11848 integer ( kind = 4 ) xdnu(n)
11877 diff = maxval( abs( a(1:m,indx(i)) - a(1:m,undx(j)) ) )
11878 if ( diff <= tol )
then
11944 integer ( kind = 4 ) m
11945 integer ( kind = 4 ) n
11947 real ( kind = 8 ) a(m,n)
11948 real ( kind = 8 ) diff
11949 integer ( kind = 4 ) i
11950 integer ( kind = 4 ) indx(n)
11951 integer ( kind = 4 ) j
11952 integer ( kind = 4 ) k
11953 real ( kind = 8 ) tol
11954 integer ( kind = 4 ) undx(n)
11955 logical ( kind = 4 ) unique
11956 integer ( kind = 4 ) unique_num
11984 diff = maxval( abs( a(1:m,indx(i)) - a(1:m,undx(j)) ) )
11985 if ( diff <= tol )
then
12043 integer ( kind = 4 ) m
12044 integer ( kind = 4 ) n
12046 real ( kind = 8 ) a(m,n)
12047 real ( kind = 8 ) diff
12048 integer ( kind = 4 ) j1
12049 integer ( kind = 4 ) j2
12050 real ( kind = 8 ) tol
12051 integer ( kind = 4 ) unique_index(n)
12052 integer ( kind = 4 ) unique_num
12054 unique_index(1:n) = -1
12059 if ( unique_index(j1) == -1 )
then
12061 unique_num = unique_num + 1
12062 unique_index(j1) = unique_num
12065 diff = maxval( abs( a(1:m,j1) - a(1:m,j2) ) )
12066 if ( diff <= tol )
then
12067 unique_index(j2) = unique_num
12175 integer ( kind = 4 ) m
12176 integer ( kind = 4 ) n
12177 integer ( kind = 4 ) unique_num
12179 real ( kind = 8 ) a(m,n)
12180 real ( kind = 8 ) diff
12181 integer ( kind = 4 ) i
12182 integer ( kind = 4 ) indx(n)
12183 integer ( kind = 4 ) j
12184 integer ( kind = 4 ) undx(unique_num)
12185 integer ( kind = 4 ) xdnu(n)
12200 diff = maxval( abs( a(1:m,indx(i)) - a(1:m,undx(j)) ) )
12202 if ( 0.0d+00 < diff )
then
12269 integer ( kind = 4 ) m
12270 integer ( kind = 4 ) n
12272 real ( kind = 8 ) a(m)
12273 real ( kind = 8 ) b(m)
12274 integer ( kind = 4 ) i
12275 integer ( kind = 4 ),
parameter :: i4_huge = 2147483647
12276 integer ( kind = 4 ) j
12277 integer ( kind = 4 ) k
12278 integer ( kind = 4 ) seed
12279 real ( kind = 8 ) r(m,n)
12287 seed = 16807 * ( seed - k * 127773 ) - k * 2836
12289 if ( seed < 0 )
then
12290 seed = seed + i4_huge
12294 + ( b(i) - a(i) ) * real( seed, kind = 8 ) * 4.656612875d-10
12340 integer ( kind = 4 ) m
12341 integer ( kind = 4 ) n
12343 real ( kind = 8 ) a(m,n)
12344 real ( kind = 8 ) diff
12345 integer ( kind = 4 ) j1
12346 integer ( kind = 4 ) j2
12347 logical ( kind = 4 ) unique(n)
12348 integer ( kind = 4 ) unique_num
12354 unique_num = unique_num + 1
12355 unique(j1) = .true.
12359 if ( unique(j2) )
then
12360 diff = maxval( abs( a(1:m,j1) - a(1:m,j2) ) )
12361 if ( diff == 0.0d+00 )
then
12362 unique_num = unique_num - 1
12363 unique(j1) = .false.
12414 integer ( kind = 4 ) m
12415 integer ( kind = 4 ) n
12417 real ( kind = 8 ) a(m,n)
12418 real ( kind = 8 ) diff
12419 integer ( kind = 4 ) j1
12420 integer ( kind = 4 ) j2
12421 integer ( kind = 4 ) unique_index(n)
12422 integer ( kind = 4 ) unique_num
12424 unique_index(1:n) = -1
12429 if ( unique_index(j1) == -1 )
then
12431 unique_num = unique_num + 1
12432 unique_index(j1) = unique_num
12435 diff = maxval( abs( a(1:m,j1) - a(1:m,j2) ) )
12436 if ( diff == 0.0d+00 )
then
12437 unique_index(j2) = unique_num
12481 integer ( kind = 4 ) m
12482 integer ( kind = 4 ) n
12484 real ( kind = 8 ) a(m,n)
12485 integer ( kind = 4 ) i
12486 integer ( kind = 4 ) j
12487 real ( kind = 8 ) mean
12488 real ( kind = 8 ) variance(n)
12492 mean = sum( a(1:m,j) ) / real( m, kind = 8 )
12494 variance(j) = 0.0d+00
12496 variance(j) = variance(j) + ( a(i,j) - mean )**2
12500 variance(j) = variance(j) / real( m - 1, kind = 8 )
12502 variance(j) = 0.0d+00
12546 real ( kind = 8 ) r
12547 real ( kind = 8 ) rmax
12548 real ( kind = 8 ) rmin
12549 real ( kind = 8 ) r2
12550 real ( kind = 8 ) r2max
12551 real ( kind = 8 ) r2min
12553 if ( rmax == rmin )
then
12555 r2 = ( r2max + r2min ) / 2.0d+00
12559 r2 = ( ( ( rmax - r ) * r2min &
12560 + ( r - rmin ) * r2max ) &
12561 / ( rmax - rmin ) )
12604 integer ( kind = 4 ) i
12605 integer ( kind = 4 ) imax
12606 integer ( kind = 4 ) imin
12607 real ( kind = 8 ) r
12608 real ( kind = 8 ) rmax
12609 real ( kind = 8 ) rmin
12611 if ( rmax == rmin )
then
12613 i = ( imax + imin ) / 2
12618 ( ( rmax - r ) * real( imin, kind = 8 ) &
12619 + ( r - rmin ) * real( imax, kind = 8 ) ) &
12620 / ( rmax - rmin ) )
12664 integer ( kind = 4 ) m
12665 integer ( kind = 4 ) n
12667 real ( kind = 8 ) a(m,n)
12668 real ( kind = 8 ) alpha
12669 real ( kind = 8 ) b(m,n)
12670 real ( kind = 8 ) beta
12671 real ( kind = 8 ) c(m,n)
12673 c(1:m,1:n) = alpha * a(1:m,1:n) + beta * b(1:m,1:n)
12712 integer ( kind = 4 ) m
12713 integer ( kind = 4 ) n
12715 real ( kind = 8 ) a(m,n)
12772 integer ( kind = 4 ) m
12773 integer ( kind = 4 ) n
12775 real ( kind = 8 ) table(m,n)
12776 real ( kind = 8 ) table2(m+2,n+2)
12778 table2(1,1:n+2) = 0.0d+00
12779 table2(m+2,1:n+2) = 0.0d+00
12780 table2(2:m+1,1) = 0.0d+00
12781 table2(2:m+1,n+2) = 0.0d+00
12783 table2(2:m+1,2:n+1) = table(1:m,1:n)
12834 integer ( kind = 4 ) m
12835 integer ( kind = 4 ) n
12837 real ( kind = 8 ) table(m,n)
12838 real ( kind = 8 ) table2(m-2,n-2)
12840 if ( m <= 2 .or. n <= 2 )
then
12844 table2(1:m-2,1:n-2) = table(2:m-1,2:n-1)
12893 integer ( kind = 4 ) n
12895 real ( kind = 8 ) a(n,n)
12896 real ( kind = 8 ) c(n,n)
12897 integer ( kind = 4 ) flag
12898 integer ( kind = 4 ) i
12899 integer ( kind = 4 ) j
12900 real ( kind = 8 ) sum2
12904 c(1:n,1:n) = a(1:n,1:n)
12908 c(1:j-1,j) = 0.0d+00
12912 sum2 = c(j,i) - dot_product( c(j,1:j-1), c(i,1:j-1) )
12915 if ( sum2 <= 0.0d+00 )
then
12919 c(i,j) = sqrt( sum2 )
12922 if ( c(j,j) /= 0.0d+00 )
then
12923 c(i,j) = sum2 / c(j,j)
12985 integer ( kind = 4 ) n
12987 real ( kind = 8 ) a(n,n)
12988 real ( kind = 8 ) c(n,n)
12989 integer ( kind = 4 ) flag
12990 integer ( kind = 4 ) i
12991 integer ( kind = 4 ) j
12993 real ( kind = 8 ) sum2
12994 real ( kind = 8 ) tol
12998 c(1:n,1:n) = a(1:n,1:n)
13002 c(j,1:j-1) = 0.0d+00
13006 sum2 = c(i,j) - dot_product( c(1:j-1,j), c(1:j-1,i) )
13009 if ( sum2 <= 0.0d+00 )
then
13013 c(j,i) = sqrt( sum2 )
13016 if ( c(j,j) /= 0.0d+00 )
then
13017 c(j,i) = sum2 / c(j,j)
13071 integer ( kind = 4 ) n
13073 real ( kind = 8 ) a(n,n)
13074 integer ( kind = 4 ) i
13075 integer ( kind = 4 ) j
13076 integer ( kind = 4 ) k
13077 real ( kind = 8 ) s
13078 real ( kind = 8 ) t
13085 t = a(k,j) - dot_product( a(1:k-1,k), a(1:k-1,j) )
13093 if ( s <= 0.0d+00 )
then
13094 write ( *,
'(a)' )
' '
13095 write ( *,
'(a)' )
'R8MAT_CHOLESKY_INVERSE - Fatal error!'
13096 write ( *,
'(a)' )
' The matrix is singular.'
13102 a(j+1:n,j) = 0.0d+00
13110 a(k,k) = 1.0d+00 / a(k,k)
13111 a(1:k-1,k) = - a(1:k-1,k) * a(k,k)
13116 a(1:k,j) = a(1:k,j) + t * a(1:k,k)
13126 a(1:k,k) = a(1:k,k) + t * a(1:k,j)
13129 a(1:j,j) = a(1:j,j) * t
13180 integer ( kind = 4 ) n
13182 real ( kind = 8 ) b(n)
13183 real ( kind = 8 ) l(n,n)
13184 real ( kind = 8 ) x(n)
13234 integer ( kind = 4 ) n
13236 real ( kind = 8 ) b(n)
13237 real ( kind = 8 ) r(n,n)
13238 real ( kind = 8 ) x(n)
13282 integer ( kind = 4 ) m
13283 integer ( kind = 4 ) n
13285 real ( kind = 8 ) a(m,n)
13286 real ( kind = 8 ) b(m,n)
13288 b(1:m,1:n) = a(1:m,1:n)
13328 integer ( kind = 4 ) m
13329 integer ( kind = 4 ) n
13331 real ( kind = 8 ) c(m,m)
13332 integer ( kind = 4 ) i
13333 integer ( kind = 4 ) j
13334 integer ( kind = 4 ) k
13335 real ( kind = 8 ) x(m,n)
13336 real ( kind = 8 ) x_mean(m)
13338 c(1:m,1:m) = 0.0d+00
13352 x_mean(i) = sum( x(i,1:n) ) / real( n, kind = 8 )
13360 c(i,j) = c(i,j) + ( x(i,k) - x_mean(i) ) * ( x(j,k) - x_mean(j) )
13365 c(1:m,1:m) = c(1:m,1:m) / real( n - 1, kind = 8 )
13409 integer ( kind = 4 ) n
13411 real ( kind = 8 ) a(n,n)
13412 real ( kind = 8 ) b(n,n)
13413 real ( kind = 8 ) det
13414 integer ( kind = 4 ) j
13415 integer ( kind = 4 ) k
13416 integer ( kind = 4 ) m
13417 integer ( kind = 4 ) piv(1)
13418 real ( kind = 8 ) t
13420 b(1:n,1:n) = a(1:n,1:n)
13426 piv = maxloc( abs( b(k:n,k) ) )
13439 if ( b(k,k) /= 0.0d+00 )
then
13441 b(k+1:n,k) = -b(k+1:n,k) / b(k,k)
13449 b(k+1:n,j) = b(k+1:n,j) + b(k+1:n,k) * b(k,j)
13492 real ( kind = 8 ) a(2,2)
13535 real ( kind = 8 ) a(3,3)
13539 a(1,1) * ( a(2,2) * a(3,3) - a(2,3) * a(3,2) ) &
13540 + a(1,2) * ( a(2,3) * a(3,1) - a(2,1) * a(3,3) ) &
13541 + a(1,3) * ( a(2,1) * a(3,2) - a(2,2) * a(3,1) )
13575 real ( kind = 8 ) a(4,4)
13580 a(2,2) * ( a(3,3) * a(4,4) - a(3,4) * a(4,3) ) &
13581 - a(2,3) * ( a(3,2) * a(4,4) - a(3,4) * a(4,2) ) &
13582 + a(2,4) * ( a(3,2) * a(4,3) - a(3,3) * a(4,2) ) ) &
13584 a(2,1) * ( a(3,3) * a(4,4) - a(3,4) * a(4,3) ) &
13585 - a(2,3) * ( a(3,1) * a(4,4) - a(3,4) * a(4,1) ) &
13586 + a(2,4) * ( a(3,1) * a(4,3) - a(3,3) * a(4,1) ) ) &
13588 a(2,1) * ( a(3,2) * a(4,4) - a(3,4) * a(4,2) ) &
13589 - a(2,2) * ( a(3,1) * a(4,4) - a(3,4) * a(4,1) ) &
13590 + a(2,4) * ( a(3,1) * a(4,2) - a(3,2) * a(4,1) ) ) &
13592 a(2,1) * ( a(3,2) * a(4,3) - a(3,3) * a(4,2) ) &
13593 - a(2,2) * ( a(3,1) * a(4,3) - a(3,3) * a(4,1) ) &
13594 + a(2,3) * ( a(3,1) * a(4,2) - a(3,2) * a(4,1) ) )
13628 real ( kind = 8 ) a(5,5)
13629 real ( kind = 8 ) b(4,4)
13630 integer ( kind = 4 ) i
13631 integer ( kind = 4 ) inc
13632 integer ( kind = 4 ) j
13633 integer ( kind = 4 ) k
13653 b(i,j) = a(i+1,j+inc)
13697 integer ( kind = 4 ) n
13699 real ( kind = 8 ) a(n,n)
13700 integer ( kind = 4 ) i
13701 real ( kind = 8 ) s
13704 a(i,i) = a(i,i) + s
13742 integer ( kind = 4 ) n
13744 real ( kind = 8 ) a(n,n)
13745 integer ( kind = 4 ) i
13746 real ( kind = 8 ) v(n)
13749 a(i,i) = a(i,i) + v(i)
13788 integer ( kind = 4 ) n
13790 real ( kind = 8 ) a(n,n)
13791 integer ( kind = 4 ) i
13792 real ( kind = 8 ) v(n)
13833 integer ( kind = 4 ) n
13835 real ( kind = 8 ) a(n,n)
13836 integer ( kind = 4 ) i
13837 real ( kind = 8 ) s
13878 integer ( kind = 4 ) n
13880 real ( kind = 8 ) a(n,n)
13881 integer ( kind = 4 ) i
13882 real ( kind = 8 ) v(n)
13922 integer ( kind = 4 ) n
13924 real ( kind = 8 ) a(n,n)
13925 real ( kind = 8 ) diag(n)
13926 integer ( kind = 4 ) i
13928 a(1:n,1:n) = 0.0d+00
13983 integer ( kind = 4 ) m
13984 integer ( kind = 4 ) n
13986 real ( kind = 8 ) a1(m,n)
13987 real ( kind = 8 ) a2(m,n)
14040 integer ( kind = 4 ) m
14041 integer ( kind = 4 ) mfat
14042 integer ( kind = 4 ) n
14043 integer ( kind = 4 ) nfat
14045 integer ( kind = 4 ) i
14046 integer ( kind = 4 ) ihi
14047 integer ( kind = 4 ) ii
14048 integer ( kind = 4 ) iii
14049 integer ( kind = 4 ) ip1
14050 integer ( kind = 4 ) j
14051 integer ( kind = 4 ) jhi
14052 integer ( kind = 4 ) jj
14053 integer ( kind = 4 ) jjj
14054 integer ( kind = 4 ) jp1
14055 real ( kind = 8 ) s
14056 real ( kind = 8 ) t
14057 real ( kind = 8 ) x(m,n)
14058 real ( kind = 8 ) x00
14059 real ( kind = 8 ) x01
14060 real ( kind = 8 ) x10
14061 real ( kind = 8 ) x11
14062 real ( kind = 8 ) xfat((m-1)*(mfat+1)+1,(n-1)*(nfat+1)+1)
14099 s = real( ii, kind = 8 ) &
14100 / real( ihi + 1, kind = 8 )
14104 t = real( jj, kind = 8 ) &
14105 / real( jhi + 1, kind = 8 )
14107 iii = 1 + ( i - 1 ) * ( mfat + 1 ) + ii
14108 jjj = 1 + ( j - 1 ) * ( nfat + 1 ) + jj
14112 + s * ( x10 - x00 ) &
14113 + t * ( x01 - x00 ) &
14114 + s * t * ( x11 - x10 - x01 + x00 )
14164 integer ( kind = 4 ) m
14165 integer ( kind = 4 ) m2
14166 integer ( kind = 4 ) n
14167 integer ( kind = 4 ) n2
14169 real ( kind = 8 ) a(m,n)
14170 real ( kind = 8 ) a2(m2,n2)
14171 integer ( kind = 4 ) i
14172 integer ( kind = 4 ) i1
14173 integer ( kind = 4 ) i2
14174 integer ( kind = 4 ) j
14175 integer ( kind = 4 ) j1
14176 integer ( kind = 4 ) j2
14177 real ( kind = 8 ) r
14178 real ( kind = 8 ) r1
14179 real ( kind = 8 ) r2
14180 real ( kind = 8 ) s
14181 real ( kind = 8 ) s1
14182 real ( kind = 8 ) s2
14186 if ( m2 == 1 )
then
14189 r = real( i - 1, kind = 8 ) &
14190 / real( m2 - 1, kind = 8 )
14193 i1 = 1 + int( r * real( m - 1, kind = 8 ) )
14201 r1 = real( i1 - 1, kind = 8 ) &
14202 / real( m - 1, kind = 8 )
14204 r2 = real( i2 - 1, kind = 8 ) &
14205 / real( m - 1, kind = 8 )
14209 if ( n2 == 1 )
then
14212 s = real( j - 1, kind = 8 ) &
14213 / real( n2 - 1, kind = 8 )
14216 j1 = 1 + int( s * real( n - 1, kind = 8 ) )
14224 s1 = real( j1 - 1, kind = 8 ) &
14225 / real( n - 1, kind = 8 )
14227 s2 = real( j2 - 1, kind = 8 ) &
14228 / real( n - 1, kind = 8 )
14231 ( ( r2 - r ) * ( s2 - s ) * a(i1,j1) &
14232 + ( r - r1 ) * ( s2 - s ) * a(i2,j1) &
14233 + ( r2 - r ) * ( s - s1 ) * a(i1,j2) &
14234 + ( r - r1 ) * ( s - s1 ) * a(i2,j2) ) &
14235 / ( ( r2 - r1 ) * ( s2 - s1 ) )
14272 integer ( kind = 4 ) m
14273 integer ( kind = 4 ) n
14275 real ( kind = 8 ) a(m,n)
14276 real ( kind = 8 ) b(m,n)
14278 b(1:m,n:1:-1) = a(1:m,1:n)
14311 integer ( kind = 4 ) m
14312 integer ( kind = 4 ) n
14314 real ( kind = 8 ) a(m,n)
14315 real ( kind = 8 ) b(m,n)
14317 b(m:1:-1,1:n) = a(1:m,1:n)
14370 integer ( kind = 4 ) n
14372 real ( kind = 8 ) a(n,n)
14373 real ( kind = 8 ) a2(n,n)
14374 real ( kind = 8 ) b(n)
14375 integer ( kind = 4 ) i
14376 integer ( kind = 4 ) info
14377 integer ( kind = 4 ) ipiv
14378 integer ( kind = 4 ) j
14379 integer ( kind = 4 ) jcol
14380 real ( kind = 8 ) piv
14381 real ( kind = 8 ) row(n)
14382 real ( kind = 8 ) t
14383 real ( kind = 8 ) temp
14385 a2(1:n,1:n) = a(1:n,1:n)
14393 piv = abs( a2(jcol,jcol) )
14396 if ( piv < abs( a2(i,jcol) ) )
then
14397 piv = abs( a2(i,jcol) )
14402 if ( piv == 0.0d+00 )
then
14404 write ( *,
'(a)' )
' '
14405 write ( *,
'(a)' )
'R8MAT_FS - Fatal error!'
14406 write ( *,
'(a,i8)' )
' Zero pivot on step ', info
14412 if ( jcol /= ipiv )
then
14414 row(1:n) = a2(jcol,1:n)
14415 a2(jcol,1:n) = a2(ipiv,1:n)
14416 a2(ipiv,1:n) = row(1:n)
14426 a2(jcol,jcol+1:n) = a2(jcol,jcol+1:n) / a2(jcol,jcol)
14427 b(jcol) = b(jcol) / a2(jcol,jcol)
14428 a2(jcol,jcol) = 1.0d+00
14433 if ( a2(i,jcol) /= 0.0d+00 )
then
14434 temp = - a2(i,jcol)
14435 a2(i,jcol) = 0.0d+00
14436 a2(i,jcol+1:n) = a2(i,jcol+1:n) + temp * a2(jcol,jcol+1:n)
14437 b(i) = b(i) + temp * b(jcol)
14446 b(1:jcol-1) = b(1:jcol-1) - a2(1:jcol-1,jcol) * b(jcol)
14502 integer ( kind = 4 ) n
14503 integer ( kind = 4 ) nb
14505 real ( kind = 8 ) a(n,n)
14506 real ( kind = 8 ) b(n,nb)
14507 integer ( kind = 4 ) i
14508 integer ( kind = 4 ) info
14509 integer ( kind = 4 ) ipiv
14510 integer ( kind = 4 ) j
14511 integer ( kind = 4 ) jcol
14512 real ( kind = 8 ) piv
14513 real ( kind = 8 ) row(n)
14514 real ( kind = 8 ) t(nb)
14515 real ( kind = 8 ) temp
14523 piv = abs( a(jcol,jcol) )
14526 if ( piv < abs( a(i,jcol) ) )
then
14527 piv = abs( a(i,jcol) )
14532 if ( piv == 0.0d+00 )
then
14534 write ( *,
'(a)' )
' '
14535 write ( *,
'(a)' )
'R8MAT_FSS - Fatal error!'
14536 write ( *,
'(a,i8)' )
' Zero pivot on step ', info
14542 if ( jcol /= ipiv )
then
14544 row(1:n) = a(jcol,1:n)
14545 a(jcol,1:n) = a(ipiv,1:n)
14546 a(ipiv,1:n) = row(1:n)
14548 t(1:nb) = b(jcol,1:nb)
14549 b(jcol,1:nb) = b(ipiv,1:nb)
14550 b(ipiv,1:nb) = t(1:nb)
14556 a(jcol,jcol+1:n) = a(jcol,jcol+1:n) / a(jcol,jcol)
14557 b(jcol,1:nb) = b(jcol,1:nb) / a(jcol,jcol)
14558 a(jcol,jcol) = 1.0d+00
14563 if ( a(i,jcol) /= 0.0d+00 )
then
14565 a(i,jcol) = 0.0d+00
14566 a(i,jcol+1:n) = a(i,jcol+1:n) + temp * a(jcol,jcol+1:n)
14567 b(i,1:nb) = b(i,1:nb) + temp * b(jcol,1:nb)
14577 b(1:jcol-1,j) = b(1:jcol-1,j) - a(1:jcol-1,jcol) * b(jcol,j)
14623 integer ( kind = 4 ) n
14625 real ( kind = 8 ) a(n,n)
14626 integer ( kind = 4 ) col
14627 real ( kind = 8 ) g(n,n)
14628 integer ( kind = 4 ) row
14629 real ( kind = 8 ) theta
14633 theta = atan2( a(row,col), a(row,row) )
14635 g(row,row) = cos( theta )
14636 g(row,col) = -sin( theta )
14637 g(col,row) = sin( theta )
14638 g(col,col) = cos( theta )
14682 integer ( kind = 4 ) n
14684 real ( kind = 8 ) a(n,n)
14685 integer ( kind = 4 ) col
14686 real ( kind = 8 ) g(n,n)
14687 integer ( kind = 4 ) row
14688 real ( kind = 8 ) theta
14692 theta = atan2( a(row,col), a(col,col) )
14694 g(row,row) = cos( theta )
14695 g(row,col) = -sin( theta )
14696 g(col,row) = sin( theta )
14697 g(col,col) = cos( theta )
14751 integer ( kind = 4 ) n
14753 real ( kind = 8 ) eps
14754 real ( kind = 8 ) f00
14755 real ( kind = 8 ) fmm
14756 real ( kind = 8 ) fmp
14757 real ( kind = 8 ) fpm
14758 real ( kind = 8 ) fpp
14760 real ( kind = 8 ) h(n,n)
14761 integer ( kind = 4 ) i
14762 integer ( kind = 4 ) j
14763 real ( kind = 8 ) s(n)
14764 real ( kind = 8 ) x(n)
14765 real ( kind = 8 ) xi
14766 real ( kind = 8 ) xj
14770 eps = ( epsilon( eps ) )**0.33d+00
14773 s(i) = eps * max( abs( x(i) ), 1.0d+00 )
14782 call fx ( n, x, f00 )
14785 call fx ( n, x, fpp )
14788 call fx ( n, x, fmm )
14790 h(i,i) = ( ( fpp - f00 ) + ( fmm - f00 ) ) / s(i)**2
14808 call fx ( n, x, fpp )
14812 call fx ( n, x, fpm )
14816 call fx ( n, x, fmp )
14820 call fx ( n, x, fmm )
14822 h(j,i) = ( ( fpp - fpm ) + ( fmm - fmp ) ) / ( 4.0d+00 * s(i) * s(j) )
14876 integer ( kind = 4 ) n
14878 real ( kind = 8 ) a(n,n)
14879 real ( kind = 8 ) ah(n,n)
14880 real ( kind = 8 ) ah_temp(n,n)
14881 integer ( kind = 4 ) i
14882 integer ( kind = 4 ) j
14883 integer ( kind = 4 ) k
14884 real ( kind = 8 ) v(n)
14885 real ( kind = 8 ) v_normsq
14887 v_normsq = sum( v(1:n)**2 )
14893 ah_temp(i,j) = a(i,j)
14895 ah_temp(i,j) = ah_temp(i,j) - 2.0d+00 * a(i,k) * v(k) * v(j) / v_normsq
14903 ah(1:n,1:n) = ah_temp(1:n,1:n)
14941 integer ( kind = 4 ) n
14943 real ( kind = 8 ) beta
14944 real ( kind = 8 ) h(n,n)
14945 integer ( kind = 4 ) i
14946 integer ( kind = 4 ) j
14947 real ( kind = 8 ) v(n)
14951 beta = sum( v(1:n)**2 )
14959 h(i,j) = h(i,j) - 2.0d+00 * v(i) * v(j) / beta
15005 integer ( kind = 4 ) n
15007 real ( kind = 8 ) a(n,n)
15008 real ( kind = 8 ) ha(n,n)
15009 real ( kind = 8 ) ha_temp(n,n)
15010 integer ( kind = 4 ) i
15011 integer ( kind = 4 ) j
15012 integer ( kind = 4 ) k
15013 real ( kind = 8 ) v(n)
15014 real ( kind = 8 ) v_normsq
15016 v_normsq = sum( v(1:n)**2 )
15022 ha_temp(i,j) = a(i,j)
15024 ha_temp(i,j) = ha_temp(i,j) - 2.0d+00 * v(i) * v(k) * a(k,j) / v_normsq
15032 ha(1:n,1:n) = ha_temp(1:n,1:n)
15080 integer ( kind = 4 ) n
15082 real ( kind = 8 ) a(n,n)
15083 integer ( kind = 4 ) col
15084 real ( kind = 8 ) h(n,n)
15085 integer ( kind = 4 ) row
15086 real ( kind = 8 ) v(n)
15087 real ( kind = 8 ) w(n)
15091 w(1:col-1) = 0.0d+00
15092 w(col:n) = a(row,col:n)
15146 integer ( kind = 4 ) n
15148 real ( kind = 8 ) a(n,n)
15149 integer ( kind = 4 ) col
15150 real ( kind = 8 ) h(n,n)
15151 integer ( kind = 4 ) row
15152 real ( kind = 8 ) v(n)
15153 real ( kind = 8 ) w(n)
15157 w(1:row-1) = 0.0d+00
15158 w(row:n) = a(row:n,col)
15198 integer ( kind = 4 ) n
15200 real ( kind = 8 ) a(n,n)
15201 integer ( kind = 4 ) i
15203 a(1:n,1:n) = 0.0d+00
15246 integer ( kind = 4 ) m
15247 integer ( kind = 4 ) n
15249 real ( kind = 8 ) a(m,n)
15252 if ( any( a(1:m,1:n) < 0.0d+00 .or. 1.0d+00 < a(1:m,1:n) ) )
then
15300 integer ( kind = 4 ) m
15301 integer ( kind = 4 ) n
15303 integer ( kind = 4 ) fac
15304 integer ( kind = 4 ) i
15305 integer ( kind = 4 ) i4_log_10
15306 integer ( kind = 4 ) j
15307 real ( kind = 8 ) table(m,n)
15309 fac = 10 ** ( i4_log_10( n ) + 1 )
15313 table(i,j) = real( fac * i + j, kind = 8 )
15354 integer ( kind = 4 ) m
15355 integer ( kind = 4 ) n
15357 integer ( kind = 4 ) i
15358 integer ( kind = 4 ) j
15359 real ( kind = 8 ) r(m,n)
15361 real ( kind = 8 ) s(m,n)
15362 real ( kind = 8 ) t
15363 real ( kind = 8 ) tol
15364 logical ( kind = 4 ) value
15371 t = r(i,j) + s(i,j)
15372 tol = epsilon( r(i,j) ) * abs( r(i,j) )
15374 if ( tol < abs( r(i,j) - t ) )
then
15425 real ( kind = 8 ) a(2,2)
15426 real ( kind = 8 ) b(2,2)
15427 real ( kind = 8 ) det
15434 if ( det == 0.0d+00 )
then
15436 b(1:2,1:2) = 0.0d+00
15440 b(1,1) = a(2,2) / det
15441 b(1,2) = -a(1,2) / det
15442 b(2,1) = -a(2,1) / det
15443 b(2,2) = a(1,1) / det
15488 real ( kind = 8 ) a(3,3)
15489 real ( kind = 8 ) b(3,3)
15490 real ( kind = 8 ) det
15499 if ( det == 0.0d+00 )
then
15500 b(1:3,1:3) = 0.0d+00
15507 b(1,1) = ( a(2,2) * a(3,3) - a(2,3) * a(3,2) ) / det
15508 b(1,2) = -( a(1,2) * a(3,3) - a(1,3) * a(3,2) ) / det
15509 b(1,3) = ( a(1,2) * a(2,3) - a(1,3) * a(2,2) ) / det
15511 b(2,1) = -( a(2,1) * a(3,3) - a(2,3) * a(3,1) ) / det
15512 b(2,2) = ( a(1,1) * a(3,3) - a(1,3) * a(3,1) ) / det
15513 b(2,3) = -( a(1,1) * a(2,3) - a(1,3) * a(2,1) ) / det
15515 b(3,1) = ( a(2,1) * a(3,2) - a(2,2) * a(3,1) ) / det
15516 b(3,2) = -( a(1,1) * a(3,2) - a(1,2) * a(3,1) ) / det
15517 b(3,3) = ( a(1,1) * a(2,2) - a(1,2) * a(2,1) ) / det
15560 real ( kind = 8 ) a(4,4)
15561 real ( kind = 8 ) b(4,4)
15562 real ( kind = 8 ) det
15571 if ( det == 0.0d+00 )
then
15573 b(1:4,1:4) = 0.0d+00
15581 + a(2,2) * ( a(3,3) * a(4,4) - a(3,4) * a(4,3) ) &
15582 + a(2,3) * ( a(3,4) * a(4,2) - a(3,2) * a(4,4) ) &
15583 + a(2,4) * ( a(3,2) * a(4,3) - a(3,3) * a(4,2) ) &
15587 + a(2,1) * ( a(3,3) * a(4,4) - a(3,4) * a(4,3) ) &
15588 + a(2,3) * ( a(3,4) * a(4,1) - a(3,1) * a(4,4) ) &
15589 + a(2,4) * ( a(3,1) * a(4,3) - a(3,3) * a(4,1) ) &
15593 + a(2,1) * ( a(3,2) * a(4,4) - a(3,4) * a(4,2) ) &
15594 + a(2,2) * ( a(3,4) * a(4,1) - a(3,1) * a(4,4) ) &
15595 + a(2,4) * ( a(3,1) * a(4,2) - a(3,2) * a(4,1) ) &
15599 + a(2,1) * ( a(3,2) * a(4,3) - a(3,3) * a(4,2) ) &
15600 + a(2,2) * ( a(3,3) * a(4,1) - a(3,1) * a(4,3) ) &
15601 + a(2,3) * ( a(3,1) * a(4,2) - a(3,2) * a(4,1) ) &
15605 + a(1,2) * ( a(3,3) * a(4,4) - a(3,4) * a(4,3) ) &
15606 + a(1,3) * ( a(3,4) * a(4,2) - a(3,2) * a(4,4) ) &
15607 + a(1,4) * ( a(3,2) * a(4,3) - a(3,3) * a(4,2) ) &
15611 + a(1,1) * ( a(3,3) * a(4,4) - a(3,4) * a(4,3) ) &
15612 + a(1,3) * ( a(3,4) * a(4,1) - a(3,1) * a(4,4) ) &
15613 + a(1,4) * ( a(3,1) * a(4,3) - a(3,3) * a(4,1) ) &
15617 + a(1,1) * ( a(3,2) * a(4,4) - a(3,4) * a(4,2) ) &
15618 + a(1,2) * ( a(3,4) * a(4,1) - a(3,1) * a(4,4) ) &
15619 + a(1,4) * ( a(3,1) * a(4,2) - a(3,2) * a(4,1) ) &
15623 + a(1,1) * ( a(3,2) * a(4,3) - a(3,3) * a(4,2) ) &
15624 + a(1,2) * ( a(3,3) * a(4,1) - a(3,1) * a(4,3) ) &
15625 + a(1,3) * ( a(3,1) * a(4,2) - a(3,2) * a(4,1) ) &
15629 + a(1,2) * ( a(2,3) * a(4,4) - a(2,4) * a(4,3) ) &
15630 + a(1,3) * ( a(2,4) * a(4,2) - a(2,2) * a(4,4) ) &
15631 + a(1,4) * ( a(2,2) * a(4,3) - a(2,3) * a(4,2) ) &
15635 + a(1,1) * ( a(2,3) * a(4,4) - a(2,4) * a(4,3) ) &
15636 + a(1,3) * ( a(2,4) * a(4,1) - a(2,1) * a(4,4) ) &
15637 + a(1,4) * ( a(2,1) * a(4,3) - a(2,3) * a(4,1) ) &
15641 + a(1,1) * ( a(2,2) * a(4,4) - a(2,4) * a(4,2) ) &
15642 + a(1,2) * ( a(2,4) * a(4,1) - a(2,1) * a(4,4) ) &
15643 + a(1,4) * ( a(2,1) * a(4,2) - a(2,2) * a(4,1) ) &
15647 + a(1,1) * ( a(2,2) * a(4,3) - a(2,3) * a(4,2) ) &
15648 + a(1,2) * ( a(2,3) * a(4,1) - a(2,1) * a(4,3) ) &
15649 + a(1,3) * ( a(2,1) * a(4,2) - a(2,2) * a(4,1) ) &
15653 + a(1,2) * ( a(2,3) * a(3,4) - a(2,4) * a(3,3) ) &
15654 + a(1,3) * ( a(2,4) * a(3,2) - a(2,2) * a(3,4) ) &
15655 + a(1,4) * ( a(2,2) * a(3,3) - a(2,3) * a(3,2) ) &
15659 + a(1,1) * ( a(2,3) * a(3,4) - a(2,4) * a(3,3) ) &
15660 + a(1,3) * ( a(2,4) * a(3,1) - a(2,1) * a(3,4) ) &
15661 + a(1,4) * ( a(2,1) * a(3,3) - a(2,3) * a(3,1) ) &
15665 + a(1,1) * ( a(2,2) * a(3,4) - a(2,4) * a(3,2) ) &
15666 + a(1,2) * ( a(2,4) * a(3,1) - a(2,1) * a(3,4) ) &
15667 + a(1,4) * ( a(2,1) * a(3,2) - a(2,2) * a(3,1) ) &
15671 + a(1,1) * ( a(2,2) * a(3,3) - a(2,3) * a(3,2) ) &
15672 + a(1,2) * ( a(2,3) * a(3,1) - a(2,1) * a(3,3) ) &
15673 + a(1,3) * ( a(2,1) * a(3,2) - a(2,2) * a(3,1) ) &
15714 integer ( kind = 4 ) n
15716 real ( kind = 8 ) a(n,n)
15717 real ( kind = 8 ) error_frobenius
15718 integer ( kind = 4 ) i
15719 integer ( kind = 4 ) j
15720 real ( kind = 8 ) value
15722 error_frobenius = 0.0d+00
15727 error_frobenius = error_frobenius + ( a(i,j) - 1.0d+00 )**2
15729 error_frobenius = error_frobenius + a(i,j)**2
15734 error_frobenius = sqrt( error_frobenius )
15773 integer ( kind = 4 ) m
15774 integer ( kind = 4 ) n
15776 real ( kind = 8 ) a(m,n)
15777 logical ( kind = 4 ) ival
15779 ival = all( 0.0d+00 <= a(1:m,1:n) )
15817 integer ( kind = 4 ) m
15818 integer ( kind = 4 ) n
15820 real ( kind = 8 ) a(m,n)
15821 real ( kind = 8 ) error_frobenius
15822 real ( kind = 8 ) value
15826 value = huge(
value )
15835 abs( a(1:m,1:n) - transpose( a(1:m,1:n) ) ) &
15842 error_frobenius =
value
15914 integer ( kind = 4 ) m
15915 integer ( kind = 4 ) n
15917 real ( kind = 8 ) del
15918 real ( kind = 8 ) eps
15919 real ( kind = 8 ) fprime(m,n)
15921 integer ( kind = 4 ) j
15922 real ( kind = 8 ) x(n)
15923 real ( kind = 8 ) xsave
15924 real ( kind = 8 ) work1(m)
15925 real ( kind = 8 ) work2(m)
15929 call fx ( m, n, x, work2 )
15937 del = eps * ( 1.0d+00 + abs( x(j) ) )
15939 call fx ( m, n, x, work1 )
15941 fprime(1:m,j) = ( work1(1:m) - work2(1:m) ) / del
15992 integer ( kind = 4 ) m1
15993 integer ( kind = 4 ) m2
15994 integer ( kind = 4 ) n1
15995 integer ( kind = 4 ) n2
15997 real ( kind = 8 ) a(m1,n1)
15998 real ( kind = 8 ) b(m2,n2)
15999 real ( kind = 8 ) c(m1*m2,n1*n2)
16000 integer ( kind = 4 ) i
16001 integer ( kind = 4 ) i0
16002 integer ( kind = 4 ) i1
16003 integer ( kind = 4 ) i2
16004 integer ( kind = 4 ) j
16005 integer ( kind = 4 ) j0
16006 integer ( kind = 4 ) j1
16007 integer ( kind = 4 ) j2
16011 i0 = ( i1 - 1 ) * m2
16012 j0 = ( j1 - 1 ) * n2
16019 c(i,j) = a(i1,j1) * b(i2,j2)
16072 integer ( kind = 4 ) n
16074 real ( kind = 8 ) a(n,n)
16075 real ( kind = 8 ) b(n,n)
16076 integer ( kind = 4 ) i
16077 integer ( kind = 4 ) j
16085 else if ( j == i )
then
16086 b(i,j) = 1.0d+00 / a(i,j)
16088 b(i,j) = - dot_product( a(i,1:i-1), b(1:i-1,j) ) / a(i,i)
16142 integer ( kind = 4 ) m
16143 integer ( kind = 4 ) n
16145 real ( kind = 8 ) a(*)
16146 integer ( kind = 4 ) i
16147 integer ( kind = 4 ) indx(10)
16148 integer ( kind = 4 ) j
16149 integer ( kind = 4 ) jhi
16150 integer ( kind = 4 ) jlo
16151 integer ( kind = 4 ) jmax
16152 integer ( kind = 4 ) nn
16153 integer ( kind = 4 ) size
16154 character ( len = * ) title
16156 write ( *,
'(a)' )
' '
16157 write ( *,
'(a)' ) trim( title )
16162 size = ( m * ( m + 1 ) ) / 2
16163 else if ( n < m )
then
16164 size = ( n * ( n + 1 ) ) / 2 + ( m - n ) * n
16167 if ( all( a(1:size) == aint( a(1:size) ) ) )
then
16171 do jlo = 1, jmax, nn
16172 jhi = min( jlo + nn - 1, m, jmax )
16173 write ( *,
'(a)' )
' '
16174 write ( *,
'(a8,10i8)' )
' Col ', ( j, j = jlo, jhi )
16175 write ( *,
'(a6)' )
' Row '
16177 jhi = min( jlo + nn - 1, i, jmax )
16179 indx(j+1-jlo) = ( j - 1 ) * m + i - ( j * ( j - 1 ) ) / 2
16181 write ( *,
'(i8,10i8)' ) i, int( a(indx(1:jhi+1-jlo)) )
16185 else if ( maxval( abs( a(1:size) ) ) < 1000000.0d+00 )
then
16189 do jlo = 1, jmax, nn
16190 jhi = min( jlo + nn - 1, m - 1, jmax )
16191 write ( *,
'(a)' )
' '
16192 write ( *,
'(8x,5(i8,6x))' ) ( j, j = jlo, jhi )
16193 write ( *,
'(a)' )
' '
16195 jhi = min( jlo + nn - 1, i, jmax )
16197 indx(j+1-jlo) = ( j - 1 ) * m + i - ( j * ( j - 1 ) ) / 2
16199 write ( *,
'(i8,5f14.6)' ) i, a(indx(1:jhi+1-jlo))
16207 do jlo = 1, jmax, nn
16208 jhi = min( jlo + nn - 1, m - 1, jmax )
16209 write ( *,
'(a)' )
' '
16210 write ( *,
'(8x,5(i8,6x))' ) ( j, j = jlo, jhi )
16211 write ( *,
'(a)' )
' '
16213 jhi = min( jlo + nn - 1, i, jmax )
16215 indx(j+1-jlo) = ( j - 1 ) * m + i - ( j * ( j - 1 ) ) / 2
16217 write ( *,
'(i8,5g14.6)' ) i, a(indx(1:jhi+1-jlo))
16260 integer ( kind = 4 ) n
16262 real ( kind = 8 ) a(n,n)
16263 real ( kind = 8 ) b(n)
16264 integer ( kind = 4 ) i
16265 real ( kind = 8 ) x(n)
16270 x(i) = ( b(i) - dot_product( a(i,1:i-1), x(1:i-1) ) ) / a(i,i)
16328 integer ( kind = 4 ) n
16330 real ( kind = 8 ) a(n,n)
16331 real ( kind = 8 ) b(n,n)
16332 integer ( kind = 4 ) i
16333 integer ( kind = 4 ) j
16341 else if ( j == i )
then
16344 b(i,j) = -dot_product( a(i,1:i-1), b(1:i-1,j) )
16391 integer ( kind = 4 ) n
16393 real ( kind = 8 ) a(n,n)
16394 real ( kind = 8 ) b(n)
16395 integer ( kind = 4 ) i
16396 real ( kind = 8 ) x(n)
16401 x(i) = ( b(i) - dot_product( x(i+1:n), a(i+1:n,i) ) ) / a(i,i)
16454 integer ( kind = 4 ) m
16455 integer ( kind = 4 ) n
16457 real ( kind = 8 ) a(m,n)
16458 integer ( kind = 4 ) i
16459 integer ( kind = 4 ) ipiv
16460 integer ( kind = 4 ) j
16461 real ( kind = 8 ) l(m,m)
16462 real ( kind = 8 ) p(m,m)
16463 real ( kind = 8 ) pivot
16464 real ( kind = 8 ) u(m,n)
16472 u(1:m,1:n) = a(1:m,1:n)
16476 p(1:m,1:m) = l(1:m,1:m)
16480 do j = 1, min( m - 1, n )
16487 if ( pivot < abs( u(i,j) ) )
then
16488 pivot = abs( u(i,j) )
16496 if ( ipiv /= 0 )
then
16508 if ( u(i,j) /= 0.0d+00 )
then
16510 l(i,j) = u(i,j) / u(j,j)
16514 u(i,j+1:n) = u(i,j+1:n) - l(i,j) * u(j,j+1:n)
16560 integer ( kind = 4 ) m
16561 integer ( kind = 4 ) n
16563 real ( kind = 8 ) a(m,n)
16604 integer ( kind = 4 ) m
16605 integer ( kind = 4 ) n
16607 real ( kind = 8 ) a(m,n)
16608 integer ( kind = 4 ) i
16609 integer ( kind = 4 ) ii
16610 integer ( kind = 4 ) j
16611 integer ( kind = 4 ) jj
16618 if ( ii == 1 .and. jj == 1 )
then
16621 else if ( a(i,j) < a(ii,jj) )
then
16669 integer ( kind = 4 ) m
16670 integer ( kind = 4 ) n
16672 real ( kind = 8 ) a(m,n)
16673 integer ( kind = 4 ) i
16675 real ( kind = 8 ) r8mat_minrow
16681 r8mat_minrow = minval( a(i,1:n) )
16732 integer ( kind = 4 ) m
16733 integer ( kind = 4 ) n
16735 real ( kind = 8 ) a(m,n)
16736 integer ( kind = 4 ) j
16738 real ( kind = 8 ) r8mat_mincol
16744 r8mat_mincol = minval( a(1:m,j) )
16790 integer ( kind = 4 ) m
16791 integer ( kind = 4 ) n
16793 real ( kind = 8 ) a(m,n)
16796 r8mat_mean = sum( a(1:m,1:n) ) / real( m * n, kind = 8 )
16834 integer ( kind = 4 ) m
16835 integer ( kind = 4 ) n
16837 real ( kind = 8 ) a(m,n)
16878 integer ( kind = 4 ) m
16879 integer ( kind = 4 ) n
16881 real ( kind = 8 ) a(m,n)
16882 integer ( kind = 4 ) i
16883 integer ( kind = 4 ) ii
16884 integer ( kind = 4 ) j
16885 integer ( kind = 4 ) jj
16892 if ( ii == 1 .and. jj == 1 )
then
16895 else if ( a(ii,jj) < a(i,j) )
then
16943 integer ( kind = 4 ) m
16944 integer ( kind = 4 ) n
16946 real ( kind = 8 ) a(m,n)
16947 integer ( kind = 4 ) i
16949 real ( kind = 8 ) r8mat_maxrow
16955 r8mat_maxrow = maxval( a(i,1:n) )
17006 integer ( kind = 4 ) m
17007 integer ( kind = 4 ) n
17009 real ( kind = 8 ) a(m,n)
17010 integer ( kind = 4 ) j
17012 real ( kind = 8 ) r8mat_maxcol
17018 r8mat_maxcol = maxval( a(1:m,j) )
17062 integer ( kind = 4 ) n1
17063 integer ( kind = 4 ) n2
17065 real ( kind = 8 ) a(n1,n1)
17066 real ( kind = 8 ) alu(n1,n1)
17067 real ( kind = 8 ) b(n1,n2)
17068 real ( kind = 8 ) c(n1,n2)
17069 integer ( kind = 4 ) info
17071 alu(1:n1,1:n1) = a(1:n1,1:n1)
17072 c(1:n1,1:n2) = b(1:n1,1:n2)
17074 call r8mat_fss ( n1, alu, n2, c, info )
17076 if ( info /= 0 )
then
17077 write ( *,
'(a)' )
' '
17078 write ( *,
'(a)' )
'R8MAT_MINVM - Fatal error!'
17079 write ( *,
'(a)' )
' The matrix A was numerically singular.'
17122 integer ( kind = 4 ) n1
17123 integer ( kind = 4 ) n2
17124 integer ( kind = 4 ) n3
17126 real ( kind = 8 ) a(n1,n2)
17127 real ( kind = 8 ) b(n2,n3)
17128 real ( kind = 8 ) c(n1,n3)
17130 c(1:n1,1:n3) = matmul( a(1:n1,1:n2), b(1:n2,1:n3) )
17171 integer ( kind = 4 ) n1
17172 integer ( kind = 4 ) n2
17173 integer ( kind = 4 ) n3
17175 real ( kind = 8 ) a(n1,n2)
17176 real ( kind = 8 ) b(n3,n2)
17177 real ( kind = 8 ) c(n1,n3)
17179 c(1:n1,1:n3) = matmul( &
17181 transpose( b(1:n3,1:n2) ) &
17223 integer ( kind = 4 ) n1
17224 integer ( kind = 4 ) n2
17225 integer ( kind = 4 ) n3
17227 real ( kind = 8 ) a(n2,n1)
17228 real ( kind = 8 ) b(n2,n3)
17229 real ( kind = 8 ) c(n1,n3)
17231 c(1:n1,1:n3) = matmul( transpose( a(1:n2,1:n1) ), b(1:n2,1:n3) )
17270 integer ( kind = 4 ) m
17271 integer ( kind = 4 ) n
17273 real ( kind = 8 ) a(m,n)
17274 real ( kind = 8 ) x(m)
17275 real ( kind = 8 ) y(n)
17277 y(1:n) = matmul( transpose( a(1:m,1:n) ), x(1:m) )
17321 integer ( kind = 4 ) m
17322 integer ( kind = 4 ) n
17324 real ( kind = 8 ) a(m,n)
17325 integer ( kind = 4 ) i
17326 integer ( kind = 4 ) j
17327 real ( kind = 8 ) x(n)
17328 real ( kind = 8 ) y(m)
17330 y(1:m) = matmul( a(1:m,1:n), x(1:n) )
17364 integer ( kind = 4 ) m
17365 integer ( kind = 4 ) n
17367 real ( kind = 8 ) a(m,n)
17369 a(1:m,1:n) = real( nint( a(1:m,1:n) ), kind = 8 )
17405 integer ( kind = 4 ) m
17406 integer ( kind = 4 ) n
17408 real ( kind = 8 ) a(m,n)
17409 integer ( kind = 4 ) i
17410 integer ( kind = 4 ) j
17412 integer ( kind = 4 ) value
17417 if ( a(i,j) /= 0.0d+00 )
then
17466 integer ( kind = 4 ) m
17467 integer ( kind = 4 ) n
17469 real ( kind = 8 ) a(m,n)
17521 integer ( kind = 4 ) m
17522 integer ( kind = 4 ) n
17524 real ( kind = 8 ) a(m,n)
17577 integer ( kind = 4 ) m
17578 integer ( kind = 4 ) n
17580 real ( kind = 8 ) a1(m,n)
17581 real ( kind = 8 ) a2(m,n)
17632 integer ( kind = 4 ) m
17633 integer ( kind = 4 ) n
17635 real ( kind = 8 ) a(m,n)
17636 real ( kind = 8 ) col_sum
17637 integer ( kind = 4 ) j
17643 col_sum = sum( abs( a(1:m,j) ) )
17694 integer ( kind = 4 ) m
17695 integer ( kind = 4 ) n
17697 real ( kind = 8 ) a(m,n)
17698 real ( kind = 8 ) b(m,m)
17699 real ( kind = 8 ) diag(m)
17704 b(1:m,1:m) = matmul( a(1:m,1:n), transpose( a(1:m,1:n) ) )
17762 integer ( kind = 4 ) m
17763 integer ( kind = 4 ) n
17765 real ( kind = 8 ) a(m,n)
17766 integer ( kind = 4 ) i
17768 real ( kind = 8 ) row_sum
17773 row_sum = sum( abs( a(i,1:n) ) )
17842 integer ( kind = 4 ) m
17843 integer ( kind = 4 ) n
17845 integer ( kind = 4 ) seed
17846 real ( kind = 8 ) r(m,n)
17908 integer ( kind = 4 ) m
17909 integer ( kind = 4 ) n
17910 integer ( kind = 4 ) nullspace_size
17912 real ( kind = 8 ) a(m,n)
17913 integer ( kind = 4 ) col(n)
17914 integer ( kind = 4 ) i
17915 integer ( kind = 4 ) i2
17916 integer ( kind = 4 ) j
17917 integer ( kind = 4 ) j2
17918 real ( kind = 8 ) nullspace(n,nullspace_size)
17919 integer ( kind = 4 ) row(m)
17920 real ( kind = 8 ) rref(m,n)
17924 rref(1:m,1:n) = a(1:m,1:n)
17941 if ( rref(i,j) == 1.0d+00 )
then
17949 nullspace(1:n,1:nullspace_size) = 0.0d+00
17958 if ( col(j) < 0 )
then
17963 if ( rref(i,j) /= 0.0d+00 )
then
17965 nullspace(i2,j2) = - rref(i,j)
17969 nullspace(j,j2) = 1.0d+00
18034 integer ( kind = 4 ) m
18035 integer ( kind = 4 ) n
18037 real ( kind = 8 ) a(m,n)
18038 integer ( kind = 4 ) i
18039 integer ( kind = 4 ) j
18040 integer ( kind = 4 ) leading
18041 integer ( kind = 4 ) nullspace_size
18042 real ( kind = 8 ) rref(m,n)
18046 rref(1:m,1:n) = a(1:m,1:n)
18055 if ( rref(i,j) == 1.0d+00 )
then
18056 leading = leading + 1
18062 nullspace_size = n - leading
18149 integer ( kind = 4 ) n
18151 real ( kind = 8 ) a(n,n)
18152 integer ( kind = 4 ) i
18153 integer ( kind = 4 ) j
18155 integer ( kind = 4 ) seed
18156 real ( kind = 8 ) v(n)
18157 real ( kind = 8 ) x(n)
18242 integer ( kind = 4 ) m
18243 integer ( kind = 4 ) n
18245 real ( kind = 8 ) a(m,n)
18246 integer ( kind = 4 ) i
18247 integer ( kind = 4 ) j
18248 integer ( kind = 4 ) jhi
18249 integer ( kind = 4 ) jlo
18250 character r8mat_plot_symbol
18251 character ( len = 70 ) string
18252 character ( len = * ) title
18254 write ( *,
'(a)' )
' '
18255 write ( *,
'(a)' ) trim( title )
18258 jhi = min( jlo + 70-1, n )
18259 write ( *,
'(a)' )
' '
18260 write ( *,
'(8x,2x,70i1)' ) ( mod( j, 10 ), j = jlo, jhi )
18261 write ( *,
'(a)' )
' '
18265 string(j+1-jlo:j+1-jlo) = r8mat_plot_symbol( a(i,j) )
18267 write ( *,
'(i8,2x,a)' ) i, string(1:jhi+1-jlo)
18307 real ( kind = 8 ) r
18309 if ( r < 0.0d+00 )
then
18311 else if ( r == 0.0d+00 )
then
18313 else if ( 0.0d+00 < r )
then
18354 integer ( kind = 4 ) n
18356 real ( kind = 8 ) a(n,n)
18357 integer ( kind = 4 ) i
18358 integer ( kind = 4 ) order
18359 real ( kind = 8 ) p(0:n)
18361 real ( kind = 8 ) trace
18362 real ( kind = 8 ) work1(n,n)
18363 real ( kind = 8 ) work2(n,n)
18371 do order = n - 1, 0, -1
18375 work2(1:n,1:n) = matmul( a(1:n,1:n), work1(1:n,1:n) )
18383 p(order) = -trace / real( n - order, kind = 8 )
18387 work1(1:n,1:n) = work2(1:n,1:n)
18390 work1(i,i) = work1(i,i) + p(order)
18439 integer ( kind = 4 ) n
18441 real ( kind = 8 ) a(n,n)
18442 real ( kind = 8 ) b(n,n)
18443 integer ( kind = 4 ) ipow
18444 integer ( kind = 4 ) npow
18446 if ( npow < 0 )
then
18447 write ( *,
'(a)' )
' '
18448 write ( *,
'(a)' )
'R8MAT_POWER - Fatal error!'
18449 write ( *,
'(a)' )
' Input value of NPOW < 0.'
18450 write ( *,
'(a,i8)' )
' NPOW = ', npow
18457 b(1:n,1:n) = matmul( a(1:n,1:n), b(1:n,1:n) )
18502 integer ( kind = 4 ) n
18504 real ( kind = 8 ) a(n,n)
18505 real ( kind = 8 ) av(n)
18506 real ( kind = 8 ) eps
18507 integer ( kind = 4 ) it
18508 real ( kind = 8 ), parameter :: it_eps = 0.0001d+00
18509 integer ( kind = 4 ),
parameter :: it_max = 100
18510 integer ( kind = 4 ),
parameter :: it_min = 10
18511 integer ( kind = 4 ) j
18512 real ( kind = 8 ) r
18513 real ( kind = 8 ) r2
18514 real ( kind = 8 ) r_old
18515 real ( kind = 8 ) v(n)
18517 eps = sqrt( epsilon( 1.0d+00 ) )
18519 r = sqrt( sum( v(1:n)**2 ) )
18521 if ( r == 0.0d+00 )
then
18523 r = sqrt( real( n, kind = 8 ) )
18526 v(1:n) = v(1:n) / r
18530 av(1:n) = matmul( a(1:n,1:n), v(1:n) )
18533 r = sqrt( sum( av(1:n)**2 ) )
18535 if ( it_min < it )
then
18536 if ( abs( r - r_old ) <= it_eps * ( 1.0d+00 + abs( r ) ) )
then
18543 if ( r /= 0.0d+00 )
then
18544 v(1:n) = v(1:n) / r
18550 if ( it < it_max / 2 )
then
18551 j = 1 + mod( it - 1, n )
18552 v(j) = v(j) + eps * ( 1.0d+00 + abs( v(j) ) )
18553 r2 = sqrt( sum( v(1:n)**2 ) )
18554 v(1:n) = v(1:n) / r2
18595 integer ( kind = 4 ) m
18596 integer ( kind = 4 ) n
18598 real ( kind = 8 ) a(m,n)
18599 character ( len = * ) title
18641 integer ( kind = 4 ),
parameter :: incx = 5
18642 integer ( kind = 4 ) m
18643 integer ( kind = 4 ) n
18645 real ( kind = 8 ) a(m,n)
18646 character ( len = 14 ) ctemp(incx)
18647 integer ( kind = 4 ) i
18648 integer ( kind = 4 ) i2hi
18649 integer ( kind = 4 ) i2lo
18650 integer ( kind = 4 ) ihi
18651 integer ( kind = 4 ) ilo
18652 integer ( kind = 4 ) inc
18653 integer ( kind = 4 ) j
18654 integer ( kind = 4 ) j2
18655 integer ( kind = 4 ) j2hi
18656 integer ( kind = 4 ) j2lo
18657 integer ( kind = 4 ) jhi
18658 integer ( kind = 4 ) jlo
18659 character ( len = * ) title
18661 write ( *,
'(a)' )
' '
18662 write ( *,
'(a)' ) trim( title )
18664 if ( m <= 0 .or. n <= 0 )
then
18665 write ( *,
'(a)' )
' '
18666 write ( *,
'(a)' )
' (None)'
18670 do j2lo = max( jlo, 1 ), min( jhi, n ), incx
18672 j2hi = j2lo + incx - 1
18673 j2hi = min( j2hi, n )
18674 j2hi = min( j2hi, jhi )
18676 inc = j2hi + 1 - j2lo
18678 write ( *,
'(a)' )
' '
18682 write ( ctemp(j2),
'(i8,6x)' ) j
18685 write ( *,
'('' Col '',5a14)' ) ctemp(1:inc)
18686 write ( *,
'(a)' )
' Row'
18687 write ( *,
'(a)' )
' '
18689 i2lo = max( ilo, 1 )
18690 i2hi = min( ihi, m )
18698 if ( a(i,j) == real( int( a(i,j) ), kind = 8 ) )
then
18699 write ( ctemp(j2),
'(f8.0,6x)' ) a(i,j)
18701 write ( ctemp(j2),
'(g14.6)' ) a(i,j)
18706 write ( *,
'(i5,a,5a14)' ) i,
':', ( ctemp(j), j = 1, inc )
18746 integer ( kind = 4 ) m
18747 integer ( kind = 4 ) n
18749 real ( kind = 8 ) a(m,n)
18750 real ( kind = 8 ) amax
18751 real ( kind = 8 ) amin
18752 integer ( kind = 4 ) i
18753 character ( len = 10 ) iform
18754 integer ( kind = 4 ) ihi
18755 integer ( kind = 4 ) ilo
18756 logical ( kind = 4 ) integ
18757 integer ( kind = 4 ) j
18758 integer ( kind = 4 ) jhi
18759 integer ( kind = 4 ) jlo
18760 integer ( kind = 4 ) lmax
18761 integer ( kind = 4 ) npline
18772 if ( a(i,j) /= real( int( a(i,j) ), kind = 8 ) )
then
18782 amax = maxval( a(1:m,1:n) )
18783 amin = minval( a(1:m,1:n) )
18793 npline = 79 / ( lmax + 3 )
18794 write ( iform,
'(''('',i2,''I'',i2,'')'')' ) npline, lmax+3
18802 if ( m == 1 .and. n == 1 )
then
18805 write ( *, iform ) int( a(1,1) )
18807 write ( *,
'(2x,g14.6)' ) a(1,1)
18812 else if ( n == 1 )
then
18814 do ilo = 1, m, npline
18816 ihi = min( ilo+npline-1, m )
18819 write ( *, iform ) ( int( a(i,1) ), i = ilo, ihi )
18821 write ( *,
'(2x,5g14.6)' ) a(ilo:ihi,1)
18828 else if ( m == 1 )
then
18830 do jlo = 1, n, npline
18832 jhi = min( jlo+npline-1, n )
18835 write ( *, iform ) int( a(1,jlo:jhi) )
18837 write ( *,
'(2x,5g14.6)' ) a(1,jlo:jhi)
18846 do jlo = 1, n, npline
18848 jhi = min( jlo+npline-1, n )
18850 if ( npline < n )
then
18851 write ( *,
'(a)' )
' '
18852 write ( *,
'(a,i8,a,i8)' )
'Matrix columns ', jlo,
' to ', jhi
18853 write ( *,
'(a)' )
' '
18859 write ( *, iform ) int( a(i,jlo:jhi) )
18861 write ( *,
'(2x,5g14.6)' ) a(i,jlo:jhi)
18928 integer ( kind = 4 ) m
18929 integer ( kind = 4 ) n
18931 real ( kind = 8 ) a(m,n)
18932 integer ( kind = 4 ) i
18933 integer ( kind = 4 ) j
18934 integer ( kind = 4 ) lead
18935 integer ( kind = 4 ) r
18936 real ( kind = 8 ) temp
18942 if ( n < lead )
then
18948 do while ( a(i,lead) == 0.0d+00 )
18955 if ( n < lead )
then
18963 if ( lead < 0 )
then
18973 a(r,1:n) = a(r,1:n) / a(r,lead)
18976 a(i,1:n) = a(i,1:n) - a(i,lead) * a(r,1:n)
19022 integer ( kind = 4 ) m
19023 integer ( kind = 4 ) n
19025 real ( kind = 8 ) a(m,n)
19028 r8mat_rms = sqrt( sum( a(1:m,1:n)**2 ) / m / n )
19068 integer ( kind = 4 ) m
19069 integer ( kind = 4 ) n
19071 real ( kind = 8 ) a(m,n)
19072 integer ( kind = 4 ) i
19073 real ( kind = 8 ) v(n)
19118 integer ( kind = 4 ) m
19119 integer ( kind = 4 ) n
19121 real ( kind = 8 ) a(m,n)
19122 integer ( kind = 4 ) i
19123 real ( kind = 8 ) r(n)
19191 integer ( kind = 4 ) m
19192 integer ( kind = 4 ) n
19194 real ( kind = 8 ) a(m,n)
19195 integer ( kind = 4 ) i
19196 integer ( kind = 4 ) j
19197 integer ( kind = 4 ) lead
19198 integer ( kind = 4 ) r
19199 real ( kind = 8 ) temp
19205 if ( n < lead )
then
19211 do while ( a(i,lead) == 0.0d+00 )
19218 if ( n < lead )
then
19226 if ( lead < 0 )
then
19236 a(r,1:n) = a(r,1:n) / a(r,lead)
19240 a(i,1:n) = a(i,1:n) - a(i,lead) * a(r,1:n)
19282 integer ( kind = 4 ) m
19283 integer ( kind = 4 ) n
19285 real ( kind = 8 ) a(m,n)
19286 real ( kind = 8 ) s
19288 a(1:m,1:n) = a(1:m,1:n) * s
19334 integer ( kind = 4 ) n
19335 integer ( kind = 4 ) rhs_num
19337 real ( kind = 8 ) a(n,n+rhs_num)
19338 real ( kind = 8 ) apivot
19339 real ( kind = 8 ) factor
19340 integer ( kind = 4 ) i
19341 integer ( kind = 4 ) info
19342 integer ( kind = 4 ) ipivot
19343 integer ( kind = 4 ) j
19344 real ( kind = 8 ) t(n+rhs_num)
19356 if ( abs( apivot ) < abs( a(i,j) ) )
then
19362 if ( apivot == 0.0d+00 )
then
19369 if ( ipivot /= j )
then
19370 t( 1:n+rhs_num) = a(ipivot,1:n+rhs_num)
19371 a(ipivot,1:n+rhs_num) = a(j, 1:n+rhs_num)
19372 a(j, 1:n+rhs_num) = t( 1:n+rhs_num)
19378 a(j,j+1:n+rhs_num) = a(j,j+1:n+rhs_num) / apivot
19387 a(i,j+1:n+rhs_num) = a(i,j+1:n+rhs_num) - factor * a(j,j+1:n+rhs_num)
19438 real ( kind = 8 ) a(2,2)
19439 real ( kind = 8 ) b(2)
19440 real ( kind = 8 ) det
19441 real ( kind = 8 ) x(2)
19445 det = a(1,1) * a(2,2) - a(1,2) * a(2,1)
19449 if ( det == 0.0d+00 )
then
19456 x(1) = ( a(2,2) * b(1) - a(1,2) * b(2) ) / det
19457 x(2) = ( -a(2,1) * b(1) + a(1,1) * b(2) ) / det
19503 real ( kind = 8 ) a(3,3)
19504 real ( kind = 8 ) b(3)
19505 real ( kind = 8 ) det
19506 real ( kind = 8 ) x(3)
19510 det = a(1,1) * ( a(2,2) * a(3,3) - a(2,3) * a(3,2) ) &
19511 + a(1,2) * ( a(2,3) * a(3,1) - a(2,1) * a(3,3) ) &
19512 + a(1,3) * ( a(2,1) * a(3,2) - a(2,2) * a(3,1) )
19516 if ( det == 0.0d+00 )
then
19523 x(1) = ( ( a(2,2) * a(3,3) - a(2,3) * a(3,2) ) * b(1) &
19524 - ( a(1,2) * a(3,3) - a(1,3) * a(3,2) ) * b(2) &
19525 + ( a(1,2) * a(2,3) - a(1,3) * a(2,2) ) * b(3) ) / det
19527 x(2) = ( - ( a(2,1) * a(3,3) - a(2,3) * a(3,1) ) * b(1) &
19528 + ( a(1,1) * a(3,3) - a(1,3) * a(3,1) ) * b(2) &
19529 - ( a(1,1) * a(2,3) - a(1,3) * a(2,1) ) * b(3) ) / det
19531 x(3) = ( ( a(2,1) * a(3,2) - a(2,2) * a(3,1) ) * b(1) &
19532 - ( a(1,1) * a(3,2) - a(1,2) * a(3,1) ) * b(2) &
19533 + ( a(1,1) * a(2,2) - a(1,2) * a(2,1) ) * b(3) ) / det
19587 integer ( kind = 4 ) n
19589 real ( kind = 8 ) a(n,n)
19590 real ( kind = 8 ) amax
19591 real ( kind = 8 ) b(n)
19592 integer ( kind = 4 ) i
19593 integer ( kind = 4 ) ierror
19594 integer ( kind = 4 ) imax
19595 integer ( kind = 4 ) ipiv(n)
19596 integer ( kind = 4 ) j
19597 integer ( kind = 4 ) k
19598 real ( kind = 8 ) x(n)
19617 if ( ipiv(i) == 0 )
then
19618 if ( amax < abs( a(i,k) ) )
then
19620 amax = abs( a(i,k) )
19628 if ( imax /= 0 )
then
19631 a(imax,k+1:n) = a(imax,k+1:n) / a(imax,k)
19632 b(imax) = b(imax) / a(imax,k)
19633 a(imax,k) = 1.0d+00
19637 if ( ipiv(i) == 0 )
then
19638 a(i,k+1:n) = a(i,k+1:n) - a(i,k) * a(imax,k+1:n)
19639 b(i) = b(i) - a(i,k) * b(imax)
19656 if ( ipiv(k) == j )
then
19661 if ( imax == 0 )
then
19665 if ( b(j) == 0.0d+00 )
then
19667 write ( *,
'(a)' )
' '
19668 write ( *,
'(a)' )
'R8MAT_SOLVE2 - Warning:'
19669 write ( *,
'(a,i8)' )
' Consistent singularity, equation = ', j
19672 write ( *,
'(a)' )
' '
19673 write ( *,
'(a)' )
'R8MAT_SOLVE2 - Error:'
19674 write ( *,
'(a,i8)' )
' Inconsistent singularity, equation = ', j
19682 if ( i /= imax )
then
19683 b(i) = b(i) - a(i,j) * x(j)
19725 integer ( kind = 4 ) m
19726 integer ( kind = 4 ) n
19728 real ( kind = 8 ) a(m,n)
19729 real ( kind = 8 ) b(m,n)
19730 real ( kind = 8 ) c(m,n)
19732 c(1:m,1:n) = a(1:m,1:n) - b(1:m,1:n)
19773 integer ( kind = 4 ) m
19774 integer ( kind = 4 ) n
19776 real ( kind = 8 ) a(m,n)
19822 integer ( kind = 4 ) n
19824 real ( kind = 8 ) a(n,n)
19825 integer ( kind = 4 ) i
19826 integer ( kind = 4 ) j
19827 integer ( kind = 4 ) k
19828 real ( kind = 8 ) q(n,n)
19829 real ( kind = 8 ) x(n)
19833 a(1:n,1:n) = 0.0d+00
19838 a(i,j) = a(i,j) + q(i,k) * x(k) * q(j,k)
19880 integer ( kind = 4 ) n
19882 real ( kind = 8 ) a(n,n)
19883 real ( kind = 8 ) c
19885 real ( kind = 8 ), parameter :: eps = 0.00001d+00
19886 integer ( kind = 4 ) i
19887 integer ( kind = 4 ) it
19888 integer ( kind = 4 ),
parameter :: it_max = 100
19889 integer ( kind = 4 ) j
19890 integer ( kind = 4 ) k
19891 real ( kind = 8 ) norm_fro
19892 real ( kind = 8 ) s
19893 real ( kind = 8 ) sum2
19894 real ( kind = 8 ) t
19895 real ( kind = 8 ) t1
19896 real ( kind = 8 ) t2
19897 real ( kind = 8 ) u
19910 if ( eps * norm_fro < abs( a(i,j) ) + abs( a(j,i) ) )
then
19912 u = ( a(j,j) - a(i,i) ) / ( a(i,j) + a(j,i) )
19914 t = sign( 1.0d+00, u ) / ( abs( u ) + sqrt( u * u + 1.0d+00 ) )
19915 c = 1.0d+00 / sqrt( t * t + 1.0d+00 )
19923 a(i,k) = t1 * c - t2 * s
19924 a(j,k) = t1 * s + t2 * c
19932 a(k,i) = c * t1 - s * t2
19933 a(k,j) = s * t1 + c * t2
19945 sum2 = sum2 + abs( a(i,j) )
19949 if ( sum2 <= eps * ( norm_fro + 1.0d+00 ) )
then
19953 if ( it_max <= it )
then
20009 integer ( kind = 4 ) lda
20010 integer ( kind = 4 ) m
20011 integer ( kind = 4 ) n
20013 real ( kind = 8 ) a1(m,n)
20014 real ( kind = 8 ) a2(lda,n)
20016 a2(1:m,1:n) = a1(1:m,1:n)
20071 integer ( kind = 4 ) n
20073 real ( kind = 8 ) a(n,n)
20074 integer ( kind = 4 ) i
20075 integer ( kind = 4 ) info
20076 integer ( kind = 4 ) pivot(n)
20077 integer ( kind = 4 ) j
20078 integer ( kind = 4 ) k
20079 integer ( kind = 4 ) l
20080 real ( kind = 8 ) lu(n,n)
20081 real ( kind = 8 ) temp
20083 lu(1:n,1:n) = a(1:n,1:n)
20093 if ( abs( lu(l,k) ) < abs( lu(i,k) ) )
then
20102 if ( lu(l,k) == 0.0d+00 )
then
20104 write ( *,
'(a)' )
' '
20105 write ( *,
'(a)' )
'R8MAT_TO_R8PLU - Fatal error!'
20106 write ( *,
'(a,i8)' )
' Zero pivot on step ', info
20120 lu(k+1:n,k) = -lu(k+1:n,k) / lu(k,k)
20132 lu(k+1:n,j) = lu(k+1:n,j) + lu(k+1:n,k) * lu(k,j)
20140 if ( lu(n,n) == 0.0d+00 )
then
20142 write ( *,
'(a)' )
' '
20143 write ( *,
'(a)' )
'R8MAT_TO_R8PLU - Fatal error!'
20144 write ( *,
'(a,i8)' )
' Zero pivot on step ', info
20183 integer ( kind = 4 ) n
20185 real ( kind = 8 ) a(n,n)
20186 integer ( kind = 4 ) i
20232 integer ( kind = 4 ) m
20233 integer ( kind = 4 ) n
20235 real ( kind = 8 ) a(m,n)
20236 real ( kind = 8 ) at(n,m)
20237 integer ( kind = 4 ) i
20238 integer ( kind = 4 ) j
20240 at = transpose( a )
20275 integer ( kind = 4 ) n
20277 real ( kind = 8 ) a(n,n)
20278 integer ( kind = 4 ) i
20279 integer ( kind = 4 ) j
20280 real ( kind = 8 ) t
20324 integer ( kind = 4 ) m
20325 integer ( kind = 4 ) n
20327 real ( kind = 8 ) a(m,n)
20328 character ( len = * ) title
20370 integer ( kind = 4 ),
parameter :: incx = 5
20371 integer ( kind = 4 ) m
20372 integer ( kind = 4 ) n
20374 real ( kind = 8 ) a(m,n)
20375 character ( len = 14 ) ctemp(incx)
20376 integer ( kind = 4 ) i
20377 integer ( kind = 4 ) i2
20378 integer ( kind = 4 ) i2hi
20379 integer ( kind = 4 ) i2lo
20380 integer ( kind = 4 ) ihi
20381 integer ( kind = 4 ) ilo
20382 integer ( kind = 4 ) inc
20383 integer ( kind = 4 ) j
20384 integer ( kind = 4 ) j2hi
20385 integer ( kind = 4 ) j2lo
20386 integer ( kind = 4 ) jhi
20387 integer ( kind = 4 ) jlo
20388 character ( len = * ) title
20390 write ( *,
'(a)' )
' '
20391 write ( *,
'(a)' ) trim( title )
20393 if ( m <= 0 .or. n <= 0 )
then
20394 write ( *,
'(a)' )
' '
20395 write ( *,
'(a)' )
' (None)'
20399 do i2lo = max( ilo, 1 ), min( ihi, m ), incx
20401 i2hi = i2lo + incx - 1
20402 i2hi = min( i2hi, m )
20403 i2hi = min( i2hi, ihi )
20405 inc = i2hi + 1 - i2lo
20407 write ( *,
'(a)' )
' '
20411 write ( ctemp(i2),
'(i8,6x)' ) i
20414 write ( *,
'('' Row '',5a14)' ) ctemp(1:inc)
20415 write ( *,
'(a)' )
' Col'
20416 write ( *,
'(a)' )
' '
20418 j2lo = max( jlo, 1 )
20419 j2hi = min( jhi, n )
20425 write ( ctemp(i2),
'(g14.6)' ) a(i,j)
20428 write ( *,
'(i5,a,5a14)' ) j,
':', ( ctemp(i), i = 1, inc )
20481 integer ( kind = 4 ) n
20483 real ( kind = 8 ) a(n,n)
20484 real ( kind = 8 ) b(n,n)
20485 integer ( kind = 4 ) i
20486 integer ( kind = 4 ) j
20494 else if ( i == j )
then
20495 b(i,j) = 1.0d+00 / a(i,j)
20497 b(i,j) = - dot_product( a(i,i+1:j), b(i+1:j,j) ) / a(i,i)
20540 integer ( kind = 4 ) n
20542 real ( kind = 8 ) a(n,n)
20543 real ( kind = 8 ) b(n)
20544 integer ( kind = 4 ) i
20545 real ( kind = 8 ) x(n)
20550 x(i) = ( b(i) - dot_product( a(i,i+1:n), x(i+1:n) ) ) / a(i,i)
20609 integer ( kind = 4 ) n
20611 real ( kind = 8 ) a(n,n)
20612 real ( kind = 8 ) b(n,n)
20613 integer ( kind = 4 ) i
20614 integer ( kind = 4 ) j
20622 else if ( i == j )
then
20625 b(i,j) = -dot_product( a(i,i+1:j), b(i+1:j,j) )
20685 integer ( kind = 4 ) m
20686 integer ( kind = 4 ) n
20688 integer ( kind = 4 ) i
20689 integer ( kind = 4 ),
parameter :: i4_huge = 2147483647
20690 integer ( kind = 4 ) j
20691 integer ( kind = 4 ) k
20692 integer ( kind = 4 ) seed
20693 real ( kind = 8 ) r(m,n)
20701 seed = 16807 * ( seed - k * 127773 ) - k * 2836
20703 if ( seed < 0 )
then
20704 seed = seed + i4_huge
20707 r(i,j) = real( seed, kind = 8 ) * 4.656612875d-10
20781 integer ( kind = 4 ) m
20782 integer ( kind = 4 ) n
20784 real ( kind = 8 ) a
20785 real ( kind = 8 ) b
20786 integer ( kind = 4 ) i
20787 integer ( kind = 4 ),
parameter :: i4_huge = 2147483647
20788 integer ( kind = 4 ) j
20789 integer ( kind = 4 ) k
20790 integer ( kind = 4 ) seed
20791 real ( kind = 8 ) r(m,n)
20793 if ( seed == 0 )
then
20794 write ( *,
'(a)' )
' '
20795 write ( *,
'(a)' )
'R8MAT_UNIFORM_AB - Fatal error!'
20796 write ( *,
'(a)' )
' Input value of SEED = 0.'
20806 seed = 16807 * ( seed - k * 127773 ) - k * 2836
20808 if ( seed < 0 )
then
20809 seed = seed + i4_huge
20812 r(i,j) = a + ( b - a ) * real( seed, kind = 8 ) * 4.656612875d-10
20886 integer ( kind = 4 ) m
20887 integer ( kind = 4 ) n
20889 real ( kind = 8 ) a(m)
20890 real ( kind = 8 ) b(m)
20891 integer ( kind = 4 ) i
20892 integer ( kind = 4 ),
parameter :: i4_huge = 2147483647
20893 integer ( kind = 4 ) j
20894 integer ( kind = 4 ) k
20895 integer ( kind = 4 ) seed
20896 real ( kind = 8 ) r(m,n)
20898 if ( seed == 0 )
then
20899 write ( *,
'(a)' )
' '
20900 write ( *,
'(a)' )
'R8MAT_UNIFORM_ABVEC - Fatal error!'
20901 write ( *,
'(a)' )
' Input value of SEED = 0.'
20911 seed = 16807 * ( seed - k * 127773 ) - k * 2836
20913 if ( seed < 0 )
then
20914 seed = seed + i4_huge
20917 r(i,j) = a(i) + ( b(i) - a(i) ) * real( seed, kind = 8 ) &
20964 integer ( kind = 4 ) n
20966 real ( kind = 8 ) a(n,n)
20967 real ( kind = 8 ) b(n)
20968 integer ( kind = 4 ) i
20969 real ( kind = 8 ) x(n)
20974 x(i) = ( b(i) - dot_product( x(1:i-1), a(1:i-1,i) ) ) / a(i,i)
21040 integer ( kind = 4 ) n
21042 real ( kind = 8 ) a(n,n)
21043 integer ( kind = 4 ) i
21044 integer ( kind = 4 ) j
21045 real ( kind = 8 ) x(n)
21050 if ( j == 1 .and. x(i) == 0.0d+00 )
then
21053 a(i,j) = x(i)**(j-1)
21098 integer ( kind = 4 ) m
21099 integer ( kind = 4 ) n
21101 real ( kind = 8 ) a(m,n)
21103 real ( kind = 8 ) x(m)
21104 real ( kind = 8 ) y(n)
21106 r8mat_vtmv = dot_product( x(1:m), matmul( a(1:m,1:n), y(1:n) ) )
21140 integer ( kind = 4 ) m
21141 integer ( kind = 4 ) n
21143 real ( kind = 8 ) a(m,n)
21145 a(1:m,1:n) = 0.0d+00
21193 integer ( kind = 4 ) n
21195 real ( kind = 8 ) det
21196 integer ( kind = 4 ) i
21197 real ( kind = 8 ) lu(n,n)
21198 integer ( kind = 4 ) pivot(n)
21203 det = det * lu(i,i)
21204 if ( pivot(i) /= i )
then
21248 integer ( kind = 4 ) n
21250 real ( kind = 8 ) a_inverse(n,n)
21251 integer ( kind = 4 ) i
21252 real ( kind = 8 ) lu(n,n)
21253 integer ( kind = 4 ) pivot(n)
21254 integer ( kind = 4 ) j
21255 integer ( kind = 4 ) k
21256 real ( kind = 8 ) temp
21257 real ( kind = 8 ) work(n)
21259 a_inverse(1:n,1:n) = lu(1:n,1:n)
21265 a_inverse(k,k) = 1.0d+00 / a_inverse(k,k)
21266 a_inverse(1:k-1,k) = -a_inverse(1:k-1,k) * a_inverse(k,k)
21270 temp = a_inverse(k,j)
21271 a_inverse(k,j) = 0.0d+00
21272 a_inverse(1:k,j) = a_inverse(1:k,j) + temp * a_inverse(1:k,k)
21280 do k = n - 1, 1, -1
21282 work(k+1:n) = a_inverse(k+1:n,k)
21283 a_inverse(k+1:n,k) = 0.0d+00
21286 a_inverse(1:n,k) = a_inverse(1:n,k) + a_inverse(1:n,j) * work(j)
21289 if ( pivot(k) /= k )
then
21292 temp = a_inverse(i,k)
21293 a_inverse(i,k) = a_inverse(i,pivot(k))
21294 a_inverse(i,pivot(k)) = temp
21343 integer ( kind = 4 ) n
21345 real ( kind = 8 ) b(n)
21346 integer ( kind = 4 ) j
21347 integer ( kind = 4 ) k
21348 real ( kind = 8 ) lu(n,n)
21349 integer ( kind = 4 ) pivot(n)
21350 real ( kind = 8 ) temp
21351 real ( kind = 8 ) x(n)
21358 b(1:j-1) = b(1:j-1) + lu(1:j-1,j) * b(j)
21359 b(j) = lu(j,j) * b(j)
21364 do j = n - 1, 1, -1
21366 b(j+1:n) = b(j+1:n) - lu(j+1:n,j) * b(j)
21416 integer ( kind = 4 ) n
21418 real ( kind = 8 ) b(n)
21419 integer ( kind = 4 ) pivot(n)
21420 integer ( kind = 4 ) j
21421 integer ( kind = 4 ) k
21422 real ( kind = 8 ) lu(n,n)
21423 real ( kind = 8 ) temp
21424 real ( kind = 8 ) x(n)
21440 x(k+1:n) = x(k+1:n) + lu(k+1:n,k) * x(k)
21447 x(k) = x(k) / lu(k,k)
21448 x(1:k-1) = x(1:k-1) - lu(1:k-1,k) * x(k)
21487 integer ( kind = 4 ) n
21489 real ( kind = 8 ) a(n,n)
21490 integer ( kind = 4 ) i
21491 real ( kind = 8 ) lu(n,n)
21492 integer ( kind = 4 ) pivot(n)
21493 integer ( kind = 4 ) j
21494 integer ( kind = 4 ) k
21495 real ( kind = 8 ) temp
21497 a(1:n,1:n) = 0.0d+00
21505 a(1:i-1,j) = a(1:i-1,j) + lu(1:i-1,i) * a(i,j)
21506 a(i,j) = lu(i,i) * a(i,j)
21511 do i = n - 1, 1, -1
21513 a(i+1:n,j) = a(i+1:n,j) - lu(i+1:n,i) * a(i,j)
21566 integer ( kind = 4 ) na
21568 real ( kind = 8 ) a(0:na)
21569 integer ( kind = 4 ) degree
21573 do while ( 0 < degree )
21575 if ( a(degree) /= 0.0d+00 )
then
21579 degree = degree - 1
21623 integer ( kind = 4 ) n
21625 real ( kind = 8 ) c(0:n)
21626 real ( kind = 8 ) cp(0:*)
21627 real ( kind = 8 ) cp_temp(0:n)
21628 integer ( kind = 4 ) d
21629 integer ( kind = 4 ) i
21630 integer ( kind = 4 ) p
21636 cp_temp(0:n) = c(0:n)
21640 cp_temp(i) = real( i + 1, kind = 8 ) * cp_temp(i+1)
21642 cp_temp(n-d+1) = 0.0d+00
21645 cp(0:n-p) = cp_temp(0:n-p)
21697 integer ( kind = 4 ) npol
21699 real ( kind = 8 ) wval
21700 real ( kind = 8 ) xpol(npol)
21701 real ( kind = 8 ) xval
21703 wval = product( xval - xpol(1:npol) )
21752 integer ( kind = 4 ) npol
21754 real ( kind = 8 ) dwdx
21755 integer ( kind = 4 ) i
21756 real ( kind = 8 ) w
21757 real ( kind = 8 ) xpol(npol)
21758 real ( kind = 8 ) xval
21765 dwdx = w + ( xval - xpol(i) ) * dwdx
21766 w = w * ( xval - xpol(i) )
21826 integer ( kind = 4 ) npol
21828 real ( kind = 8 ) dw2dx2
21829 integer ( kind = 4 ) i
21830 integer ( kind = 4 ) j
21831 integer ( kind = 4 ) k
21832 real ( kind = 8 ) term
21833 real ( kind = 8 ) xpol(npol)
21834 real ( kind = 8 ) xval
21846 if ( i /= j .and. i /= k )
then
21847 term = term * ( xval - xpol(i) )
21851 dw2dx2 = dw2dx2 + term
21911 integer ( kind = 4 ) npol
21913 integer ( kind = 4 ) i
21914 integer ( kind = 4 ) indx
21915 integer ( kind = 4 ) ipol
21916 integer ( kind = 4 ) j
21917 real ( kind = 8 ) pcof(0:npol-1)
21918 logical ( kind = 4 ) r8vec_distinct
21919 real ( kind = 8 ) xpol(npol)
21923 if ( ipol < 1 .or. npol < ipol )
then
21924 write ( *,
'(a)' )
' '
21925 write ( *,
'(a)' )
'R8POLY_LAGRANGE_COEF - Fatal error!'
21926 write ( *,
'(a)' )
' 1 <= IPOL <= NPOL is required.'
21927 write ( *,
'(a,i8)' )
' IPOL = ', ipol
21928 write ( *,
'(a,i8)' )
' NPOL = ', npol
21934 if ( .not. r8vec_distinct( npol, xpol ) )
then
21935 write ( *,
'(a)' )
' '
21936 write ( *,
'(a)' )
'R8POLY_LAGRANGE_COEF - Fatal error!'
21937 write ( *,
'(a)' )
' Two or more entries of XPOL are equal:'
21942 pcof(1:npol-1) = 0.0d+00
21948 if ( i /= ipol )
then
21954 pcof(j) = -xpol(i) * pcof(j) / ( xpol(ipol) - xpol(i) )
21957 pcof(j) = pcof(j) + pcof(j-1) / ( xpol(ipol) - xpol(i) )
22044 integer ( kind = 4 ) npol
22046 real ( kind = 8 ) dwdx
22047 integer ( kind = 4 ) i
22048 integer ( kind = 4 ) j
22049 real ( kind = 8 ) term
22050 real ( kind = 8 ) wval
22051 real ( kind = 8 ) xpol(npol)
22052 real ( kind = 8 ) xval
22054 wval = product( xval - xpol(1:npol) )
22064 term = term * ( xval - xpol(j) )
22126 integer ( kind = 4 ) npol
22128 real ( kind = 8 ) dpdx
22129 integer ( kind = 4 ) i
22130 integer ( kind = 4 ) ipol
22131 integer ( kind = 4 ) j
22132 real ( kind = 8 ) p2
22133 real ( kind = 8 ) pval
22134 logical ( kind = 4 ) r8vec_distinct
22135 real ( kind = 8 ) xpol(npol)
22136 real ( kind = 8 ) xval
22140 if ( ipol < 1 .or. npol < ipol )
then
22141 write ( *,
'(a)' )
' '
22142 write ( *,
'(a)' )
'R8POLY_LAGRANGE_VAL - Fatal error!'
22143 write ( *,
'(a)' )
' 1 <= IPOL <= NPOL is required.'
22144 write ( *,
'(a,i8)' )
' IPOL = ', ipol
22150 if ( .not. r8vec_distinct( npol, xpol ) )
then
22151 write ( *,
'(a)' )
' '
22152 write ( *,
'(a)' )
'R8POLY_LAGRANGE_VAL - Fatal error!'
22153 write ( *,
'(a)' )
' Two or more entries of XPOL are equal:'
22163 if ( i /= ipol )
then
22165 pval = pval * ( xval - xpol(i) ) / ( xpol(ipol) - xpol(i) )
22178 if ( i /= ipol )
then
22184 p2 = p2 / ( xpol(ipol) - xpol(j) )
22185 else if ( j /= ipol )
then
22186 p2 = p2 * ( xval - xpol(j) ) / ( xpol(ipol) - xpol(j) )
22235 integer ( kind = 4 ) na
22237 real ( kind = 8 ) a(0:na)
22238 integer ( kind = 4 ) order
22242 do while ( 1 < order )
22244 if ( a(order-1) /= 0.0d+00 )
then
22284 integer ( kind = 4 ) n
22286 real ( kind = 8 ) a(0:n)
22287 integer ( kind = 4 ) i
22288 real ( kind = 8 ) mag
22289 integer ( kind = 4 ) n2
22290 character plus_minus
22291 character ( len = * ) title
22293 write ( *,
'(a)' )
' '
22294 write ( *,
'(a)' ) trim( title )
22295 write ( *,
'(a)' )
' '
22299 if ( n2 <= 0 )
then
22300 write ( *,
'( '' p(x) = 0'' )' )
22304 if ( a(n2) < 0.0d+00 )
then
22312 if ( 2 <= n2 )
then
22313 write ( *,
'( '' p(x) = '', a1, g14.6, '' * x ^ '', i3 )' ) &
22314 plus_minus, mag, n2
22315 else if ( n2 == 1 )
then
22316 write ( *,
'( '' p(x) = '', a1, g14.6, '' * x'' )' ) &
22318 else if ( n2 == 0 )
then
22319 write ( *,
'( '' p(x) = '', a1, g14.6 )' ) plus_minus, mag
22324 if ( a(i) < 0.0d+00 )
then
22332 if ( mag /= 0.0d+00 )
then
22335 write ( *,
' ( '' '', a1, g14.6, '' * x ^ '', i3 )' ) &
22337 else if ( i == 1 )
then
22338 write ( *,
' ( '' '', a1, g14.6, '' * x'' )' ) plus_minus, mag
22339 else if ( i == 0 )
then
22340 write ( *,
' ( '' '', a1, g14.6 )' ) plus_minus, mag
22423 integer ( kind = 4 ) n
22425 integer ( kind = 4 ) i
22426 integer ( kind = 4 ) j
22427 real ( kind = 8 ) poly_cof(0:n)
22428 real ( kind = 8 ) scale
22429 real ( kind = 8 ) shift
22432 poly_cof(i:n) = poly_cof(i:n) / scale
22436 do j = n - 1, i, -1
22437 poly_cof(j) = poly_cof(j) - shift * poly_cof(j+1)
22484 integer ( kind = 4 ) m
22485 integer ( kind = 4 ) n
22487 real ( kind = 8 ) c(0:m)
22488 integer ( kind = 4 ) i
22489 real ( kind = 8 ) p(n)
22490 real ( kind = 8 ) x(n)
22493 do i = m - 1, 0, -1
22494 p(1:n) = p(1:n) * x(1:n) + c(i)
22545 integer ( kind = 4 ) n
22547 real ( kind = 8 ) c(*)
22548 integer ( kind = 4 ) ex
22549 integer ( kind = 4 ) ey
22550 integer ( kind = 4 ) j
22551 integer ( kind = 4 ) m
22552 real ( kind = 8 ) p(n)
22553 integer ( kind = 4 ) s
22554 real ( kind = 8 ) x(n)
22555 real ( kind = 8 ) y(n)
22564 p(1:n) = p(1:n) + c(j) * x(1:n) ** ex * y(1:n) ** ey
22604 real ( kind = 8 ) bot
22605 integer ( kind = 4 ) ierror
22606 real ( kind = 8 ) x
22607 real ( kind = 8 ) x1
22608 real ( kind = 8 ) x2
22609 real ( kind = 8 ) x3
22610 real ( kind = 8 ) y
22611 real ( kind = 8 ) y1
22612 real ( kind = 8 ) y2
22613 real ( kind = 8 ) y3
22617 if ( x1 == x2 .or. x2 == x3 .or. x3 == x1 )
then
22622 if ( y1 == y2 .and. y2 == y3 .and. y3 == y1 )
then
22628 bot = ( x2 - x3 ) * y1 - ( x1 - x3 ) * y2 + ( x1 - x2 ) * y3
22630 if ( bot == 0.0d+00 )
then
22636 x1**2 * ( y3 - y2 ) &
22637 + x2**2 * ( y1 - y3 ) &
22638 + x3**2 * ( y2 - y1 ) ) / bot
22641 ( x - x2 ) * ( x - x3 ) * ( x2 - x3 ) * y1 &
22642 - ( x - x1 ) * ( x - x3 ) * ( x1 - x3 ) * y2 &
22643 + ( x - x1 ) * ( x - x2 ) * ( x1 - x2 ) * y3 ) / &
22644 ( ( x1 - x2 ) * ( x2 - x3 ) * ( x1 - x3 ) )
22648subroutine r8poly2_ex2 ( x1, y1, x2, y2, x3, y3, x, y, a, b, c, ierror )
22685 real ( kind = 8 ) a
22686 real ( kind = 8 ) b
22687 real ( kind = 8 ) c
22688 real ( kind = 8 ) det
22689 integer ( kind = 4 ) ierror
22690 real ( kind = 8 ) v(3,3)
22691 real ( kind = 8 ) w(3,3)
22692 real ( kind = 8 ) x
22693 real ( kind = 8 ) x1
22694 real ( kind = 8 ) x2
22695 real ( kind = 8 ) x3
22696 real ( kind = 8 ) y
22697 real ( kind = 8 ) y1
22698 real ( kind = 8 ) y2
22699 real ( kind = 8 ) y3
22703 if ( x1 == x2 .or. x2 == x3 .or. x3 == x1 )
then
22708 if ( y1 == y2 .and. y2 == y3 .and. y3 == y1 )
then
22734 c = w(1,1) * y1 + w(1,2) * y2 + w(1,3) * y3
22735 b = w(2,1) * y1 + w(2,2) * y2 + w(2,3) * y3
22736 a = w(3,1) * y1 + w(3,2) * y2 + w(3,3) * y3
22740 if ( a == 0.0d+00 )
then
22745 x = -b / ( 2.0d+00 * a )
22746 y = a * x * x + b * x + c
22784 real ( kind = 8 ) a
22785 real ( kind = 8 ) b
22786 real ( kind = 8 ) c
22787 complex ( kind = 8 ) disc
22788 complex ( kind = 8 ) q
22789 complex ( kind = 8 ) r1
22790 complex ( kind = 8 ) r2
22792 if ( a == 0.0d+00 )
then
22793 write ( *,
'(a)' )
' '
22794 write ( *,
'(a)' )
'R8POLY2_ROOT - Fatal error!'
22795 write ( *,
'(a)' )
' The coefficient A is zero.'
22799 disc = b * b - 4.0d+00 * a * c
22800 q = -0.5d+00 * ( b + sign( 1.0d+00, b ) * sqrt( disc ) )
22843 real ( kind = 8 ) a
22844 real ( kind = 8 ) b
22845 real ( kind = 8 ) c
22846 real ( kind = 8 ) disc
22847 real ( kind = 8 ) q
22848 real ( kind = 8 ) r1
22849 real ( kind = 8 ) r2
22851 if ( a == 0.0d+00 )
then
22852 write ( *,
'(a)' )
' '
22853 write ( *,
'(a)' )
'R8POLY2_RROOT - Fatal error!'
22854 write ( *,
'(a)' )
' The coefficient A is zero.'
22858 disc = b * b - 4.0d+00 * a * c
22859 disc = max( disc, 0.0d+00 )
22861 q = ( b + sign( 1.0d+00, b ) * sqrt( disc ) )
22862 r1 = -0.5d+00 * q / a
22863 r2 = -2.0d+00 * c / q
22906 integer ( kind = 4 ) distinct
22907 real ( kind = 8 ) dif1
22908 real ( kind = 8 ) dif2
22909 real ( kind = 8 ) x
22910 real ( kind = 8 ) x1
22911 real ( kind = 8 ) x2
22912 real ( kind = 8 ) x3
22913 real ( kind = 8 ) y
22914 real ( kind = 8 ) y1
22915 real ( kind = 8 ) y2
22916 real ( kind = 8 ) y3
22917 real ( kind = 8 ) yp
22918 real ( kind = 8 ) ypp
22922 if ( x1 == x2 .and. x2 == x3 )
then
22924 else if ( x1 == x2 )
then
22926 else if ( x1 == x3 )
then
22927 write ( *,
'(a)' )
' '
22928 write ( *,
'(a)' )
'R8POLY2_VAL - Fatal error!'
22929 write ( *,
'(a)' )
' X1 = X3 =/= X2.'
22930 write ( *,
'(a,g14.6)' )
' X1 = ', x1
22931 write ( *,
'(a,g14.6)' )
' X2 = ', x2
22932 write ( *,
'(a,g14.6)' )
' X3 = ', x3
22934 else if ( x2 == x3 )
then
22946 if ( distinct == 1 )
then
22949 dif2 = 0.5d+00 * y3
22951 else if ( distinct == 2 )
then
22954 dif2 = ( ( y3 - y1 ) / ( x3 - x1 ) - y2 ) / ( x3 - x2 )
22956 else if ( distinct == 3 )
then
22958 dif1 = ( y2 - y1 ) / ( x2 - x1 )
22959 dif2 = ( ( y3 - y1 ) / ( x3 - x1 ) &
22960 - ( y2 - y1 ) / ( x2 - x1 ) ) / ( x3 - x2 )
22966 y = y1 + ( x - x1 ) * dif1 + ( x - x1 ) * ( x - x2 ) * dif2
22967 yp = dif1 + ( 2.0d+00 * x - x1 - x2 ) * dif2
22968 ypp = 2.0d+00 * dif2
23025 integer ( kind = 4 ) ndata
23026 integer ( kind = 4 ) dim_num
23028 real ( kind = 8 ) dif1
23029 real ( kind = 8 ) dif2
23030 integer ( kind = 4 ) i
23031 integer ( kind = 4 ) left
23032 real ( kind = 8 ) t1
23033 real ( kind = 8 ) t2
23034 real ( kind = 8 ) t3
23035 real ( kind = 8 ) tval
23036 real ( kind = 8 ) tdata(ndata)
23037 real ( kind = 8 ) ydata(dim_num,ndata)
23038 real ( kind = 8 ) y1
23039 real ( kind = 8 ) y2
23040 real ( kind = 8 ) y3
23041 real ( kind = 8 ) yval(dim_num)
23045 if ( left < 1 .or. ndata-2 < left )
then
23046 write ( *,
'(a)' )
' '
23047 write ( *,
'(a)' )
'R8POLY2_VAL2 - Fatal error!'
23048 write ( *,
'(a)' )
' LEFT < 1 or NDATA-2 < LEFT.'
23049 write ( *,
'(a,i8)' )
' LEFT = ', left
23053 if ( dim_num < 1 )
then
23054 write ( *,
'(a)' )
' '
23055 write ( *,
'(a)' )
'R8POLY2_VAL2 - Fatal error!'
23056 write ( *,
'(a)' )
' DIM_NUM < 1.'
23057 write ( *,
'(a,i8)' )
' DIM_NUM = ', dim_num
23067 if ( t2 <= t1 .or. t3 <= t2 )
then
23068 write ( *,
'(a)' )
' '
23069 write ( *,
'(a)' )
'R8POLY2_VAL2 - Fatal error!'
23070 write ( *,
'(a)' )
' T2 <= T1 or T3 <= T2.'
23071 write ( *,
'(a,g14.6)' )
' T1 = ', t1
23072 write ( *,
'(a,g14.6)' )
' T2 = ', t2
23073 write ( *,
'(a,g14.6)' )
' T3 = ', t3
23083 y2 = ydata(i,left+1)
23084 y3 = ydata(i,left+2)
23086 dif1 = ( y2 - y1 ) / ( t2 - t1 )
23087 dif2 = ( ( y3 - y1 ) / ( t3 - t1 ) &
23088 - ( y2 - y1 ) / ( t2 - t1 ) ) / ( t3 - t2 )
23090 yval(i) = y1 + ( tval - t1 ) * ( dif1 + ( tval - t2 ) * dif2 )
23126 real ( kind = 8 ) a
23127 real ( kind = 8 ) b
23128 real ( kind = 8 ) c
23129 real ( kind = 8 ) d
23130 complex ( kind = 8 ) i
23131 complex ( kind = 8 ) one
23132 real ( kind = 8 ) q
23133 real ( kind = 8 ) r
23134 complex ( kind = 8 ) r1
23135 complex ( kind = 8 ) r2
23136 complex ( kind = 8 ) r3
23137 real ( kind = 8 ), parameter ::
r8_pi = 3.141592653589793d+00
23138 real ( kind = 8 ) s1
23139 real ( kind = 8 ) s2
23140 real ( kind = 8 ) temp
23141 real ( kind = 8 ) theta
23143 if ( a == 0.0d+00 )
then
23144 write ( *,
'(a)' )
' '
23145 write ( *,
'(a)' )
'R8POLY3_ROOT - Fatal error!'
23146 write ( *,
'(a)' )
' A must not be zero!'
23150 one = cmplx( 1.0d+00, 0.0d+00, kind = 8 )
23153 q = ( ( b / a )**2 - 3.0d+00 * ( c / a ) ) / 9.0d+00
23155 r = ( 2.0d+00 * ( b / a )**3 - 9.0d+00 * ( b / a ) * ( c / a ) &
23156 + 27.0d+00 * ( d / a ) ) / 54.0d+00
23158 if ( r * r < q * q * q )
then
23160 theta = acos( r / sqrt( q**3 ) )
23161 r1 = -2.0d+00 * sqrt( q ) * cos( theta / 3.0d+00 )
23162 r2 = -2.0d+00 * sqrt( q ) * cos( ( theta + 2.0d+00 *
r8_pi ) / 3.0d+00 )
23163 r3 = -2.0d+00 * sqrt( q ) * cos( ( theta + 4.0d+00 *
r8_pi ) / 3.0d+00 )
23165 else if ( q * q * q <= r * r )
then
23167 temp = -r + sqrt( r**2 - q**3 )
23168 s1 = sign( 1.0d+00, temp ) * ( abs( temp ) )**(1.0d+00/3.0d+00)
23170 temp = -r - sqrt( r**2 - q**3 )
23171 s2 = sign( 1.0d+00, temp ) * ( abs( temp ) )**(1.0d+00/3.0d+00)
23174 r2 = -0.5d+00 * ( s1 + s2 ) + i * 0.5d+00 * sqrt( 3.0d+00 ) * ( s1 - s2 )
23175 r3 = -0.5d+00 * ( s1 + s2 ) - i * 0.5d+00 * sqrt( 3.0d+00 ) * ( s1 - s2 )
23179 r1 = r1 - b / ( 3.0d+00 * a )
23180 r2 = r2 - b / ( 3.0d+00 * a )
23181 r3 = r3 - b / ( 3.0d+00 * a )
23214 real ( kind = 8 ) a
23215 real ( kind = 8 ) a3
23216 real ( kind = 8 ) a4
23217 real ( kind = 8 ) b
23218 real ( kind = 8 ) b3
23219 real ( kind = 8 ) b4
23220 real ( kind = 8 ) c
23221 real ( kind = 8 ) c3
23222 real ( kind = 8 ) c4
23223 real ( kind = 8 ) d
23224 real ( kind = 8 ) d3
23225 real ( kind = 8 ) d4
23226 real ( kind = 8 ) e
23227 complex ( kind = 8 ) p
23228 complex ( kind = 8 ) q
23229 complex ( kind = 8 ) r
23230 complex ( kind = 8 ) r1
23231 complex ( kind = 8 ) r2
23232 complex ( kind = 8 ) r3
23233 complex ( kind = 8 ) r4
23234 complex ( kind = 8 ) zero
23236 zero = cmplx( 0.0d+00, 0.0d+00, kind = 8 )
23238 if ( a == 0.0d+00 )
then
23239 write ( *,
'(a)' )
' '
23240 write ( *,
'(a)' )
'R8POLY4_ROOT - Fatal error!'
23241 write ( *,
'(a)')
' A must not be zero!'
23254 c3 = a4 * c4 - 4.0d+00 * d4
23255 d3 = -a4 * a4 * d4 + 4.0d+00 * b4 * d4 - c4 * c4
23265 r = sqrt( 0.25d+00 * a4**2 - b4 + r1 )
23267 if ( r /= zero )
then
23269 p = sqrt( 0.75d+00 * a4**2 - r**2 - 2.0d+00 * b4 &
23270 + 0.25d+00 * ( 4.0d+00 * a4 * b4 - 8.0d+00 * c4 - a4**3 ) / r )
23272 q = sqrt( 0.75d+00 * a4**2 - r**2 - 2.0d+00 * b4 &
23273 - 0.25d+00 * ( 4.0d+00 * a4 * b4 - 8.0d+00 * c4 - a4**3 ) / r )
23277 p = sqrt( 0.75d+00 * a4**2 - 2.0d+00 * b4 &
23278 + 2.0d+00 * sqrt( r1**2 - 4.0d+00 * d4 ) )
23280 q = sqrt( 0.75d+00 * a4**2 - 2.0d+00 * b4 &
23281 - 2.0d+00 * sqrt( r1**2 - 4.0d+00 * d4 ) )
23287 r1 = -0.25d+00 * a4 + 0.5d+00 * r + 0.5d+00 * p
23288 r2 = -0.25d+00 * a4 + 0.5d+00 * r - 0.5d+00 * p
23289 r3 = -0.25d+00 * a4 - 0.5d+00 * r + 0.5d+00 * q
23290 r4 = -0.25d+00 * a4 - 0.5d+00 * r - 0.5d+00 * q
23329 integer ( kind = 4 ) compare
23331 real ( kind = 8 ) x1
23332 real ( kind = 8 ) x2
23333 real ( kind = 8 ) y1
23334 real ( kind = 8 ) y2
23336 if ( x1 < x2 )
then
23338 else if ( x2 < x1 )
then
23340 else if ( y1 < y2 )
then
23342 else if ( y2 < y1 )
then
23388 real ( kind = 8 ) a1
23389 real ( kind = 8 ) a2
23390 character ( len = * ) title
23392 if ( 0 < len_trim( title ) )
then
23393 write ( *,
'( 2x, a, a4, g14.6, a1, g14.6, a1 )' ) &
23394 trim( title ),
' : (', a1,
',', a2,
')'
23396 write ( *,
'( 2x, a1, g14.6, a1, g14.6, a1 )' )
'(', a1,
',', a2,
')'
23436 integer ( kind = 4 ) compare
23438 real ( kind = 8 ) x1
23439 real ( kind = 8 ) x2
23440 real ( kind = 8 ) y1
23441 real ( kind = 8 ) y2
23442 real ( kind = 8 ) z1
23443 real ( kind = 8 ) z2
23445 if ( x1 < x2 )
then
23447 else if ( x2 < x1 )
then
23449 else if ( y1 < y2 )
then
23451 else if ( y2 < y1 )
then
23453 else if ( z1 < z2 )
then
23455 else if ( z2 < z1 )
then
23466 xval, yval, zval, ival, ierror )
23514 integer ( kind = 4 ) n_max
23516 integer ( kind = 4 ) equal
23517 integer ( kind = 4 ) ierror
23518 integer ( kind = 4 ) indx(n_max)
23519 integer ( kind = 4 ) ival
23520 integer ( kind = 4 ) less
23521 integer ( kind = 4 ) more
23522 integer ( kind = 4 ) n
23523 real ( kind = 8 ) x(n_max)
23524 real ( kind = 8 ) xval
23525 real ( kind = 8 ) y(n_max)
23526 real ( kind = 8 ) yval
23527 real ( kind = 8 ) z(n_max)
23528 real ( kind = 8 ) zval
23534 if ( n_max <= 0 )
then
23536 write ( *,
'(a)' )
' '
23537 write ( *,
'(a)' )
'R8R8R8VEC_INDEX_INSERT_UNIQUE - Fatal error!'
23538 write ( *,
'(a)' )
' Not enough space to store new data.'
23555 less, equal, more )
23557 if ( equal == 0 )
then
23559 if ( n_max <= n )
then
23561 write ( *,
'(a)' )
' '
23562 write ( *,
'(a)' )
'R8R8R8VEC_INDEX_INSERT_UNIQUE - Fatal error!'
23563 write ( *,
'(a)' )
' Not enough space to store new data.'
23571 indx(n+1:more+1:-1) = indx(n:more:-1)
23584 zval, less, equal, more )
23626 integer ( kind = 4 ) n
23628 integer ( kind = 4 ) compare
23629 integer ( kind = 4 ) r8r8r8_compare
23630 integer ( kind = 4 ) equal
23631 integer ( kind = 4 ) hi
23632 integer ( kind = 4 ) indx(n)
23633 integer ( kind = 4 ) less
23634 integer ( kind = 4 ) lo
23635 integer ( kind = 4 ) mid
23636 integer ( kind = 4 ) more
23637 real ( kind = 8 ) x(n)
23638 real ( kind = 8 ) xhi
23639 real ( kind = 8 ) xlo
23640 real ( kind = 8 ) xmid
23641 real ( kind = 8 ) xval
23642 real ( kind = 8 ) y(n)
23643 real ( kind = 8 ) yhi
23644 real ( kind = 8 ) ylo
23645 real ( kind = 8 ) ymid
23646 real ( kind = 8 ) yval
23647 real ( kind = 8 ) z(n)
23648 real ( kind = 8 ) zhi
23649 real ( kind = 8 ) zlo
23650 real ( kind = 8 ) zmid
23651 real ( kind = 8 ) zval
23671 compare = r8r8r8_compare( xval, yval, zval, xlo, ylo, zlo )
23673 if ( compare == -1 )
then
23678 else if ( compare == 0 )
then
23685 compare = r8r8r8_compare( xval, yval, zval, xhi, yhi, zhi )
23687 if ( compare == 1 )
then
23692 else if ( compare == 0 )
then
23701 if ( lo + 1 == hi )
then
23708 mid = ( lo + hi ) / 2
23709 xmid = x(indx(mid))
23710 ymid = y(indx(mid))
23711 zmid = z(indx(mid))
23713 compare = r8r8r8_compare( xval, yval, zval, xmid, ymid, zmid )
23715 if ( compare == 0 )
then
23720 else if ( compare == -1 )
then
23722 else if ( compare == +1 )
then
23779 integer ( kind = 4 ) n_max
23781 integer ( kind = 4 ) equal
23782 integer ( kind = 4 ) ierror
23783 integer ( kind = 4 ) indx(n_max)
23784 integer ( kind = 4 ) ival
23785 integer ( kind = 4 ) less
23786 integer ( kind = 4 ) more
23787 integer ( kind = 4 ) n
23788 real ( kind = 8 ) x(n_max)
23789 real ( kind = 8 ) xval
23790 real ( kind = 8 ) y(n_max)
23791 real ( kind = 8 ) yval
23797 if ( n_max <= 0 )
then
23799 write ( *,
'(a)' )
' '
23800 write ( *,
'(a)' )
'R8R8VEC_INDEX_INSERT_UNIQUE - Fatal error!'
23801 write ( *,
'(a)' )
' Not enough space to store new data.'
23818 if ( equal == 0 )
then
23820 if ( n_max <= n )
then
23822 write ( *,
'(a)' )
' '
23823 write ( *,
'(a)' )
'R8R8VEC_INDEX_INSERT_UNIQUE - Fatal error!'
23824 write ( *,
'(a)' )
' Not enough space to store new data.'
23831 indx(n+1:more+1:-1) = indx(n:more:-1)
23886 integer ( kind = 4 ) n
23888 integer ( kind = 4 ) compare
23889 integer ( kind = 4 ) r8r8_compare
23890 integer ( kind = 4 ) equal
23891 integer ( kind = 4 ) hi
23892 integer ( kind = 4 ) indx(n)
23893 integer ( kind = 4 ) less
23894 integer ( kind = 4 ) lo
23895 integer ( kind = 4 ) mid
23896 integer ( kind = 4 ) more
23897 real ( kind = 8 ) x(n)
23898 real ( kind = 8 ) xhi
23899 real ( kind = 8 ) xlo
23900 real ( kind = 8 ) xmid
23901 real ( kind = 8 ) xval
23902 real ( kind = 8 ) y(n)
23903 real ( kind = 8 ) yhi
23904 real ( kind = 8 ) ylo
23905 real ( kind = 8 ) ymid
23906 real ( kind = 8 ) yval
23924 compare = r8r8_compare( xval, yval, xlo, ylo )
23926 if ( compare == -1 )
then
23931 else if ( compare == 0 )
then
23938 compare = r8r8_compare( xval, yval, xhi, yhi )
23940 if ( compare == 1 )
then
23945 else if ( compare == 0 )
then
23954 if ( lo + 1 == hi )
then
23961 mid = ( lo + hi ) / 2
23962 xmid = x(indx(mid))
23963 ymid = y(indx(mid))
23965 compare = r8r8_compare( xval, yval, xmid, ymid )
23967 if ( compare == 0 )
then
23972 else if ( compare == -1 )
then
23974 else if ( compare == +1 )
then
24037 integer ( kind = 4 ) m
24038 integer ( kind = 4 ) n
24040 real ( kind = 8 ) a(m,n)
24041 integer ( kind = 4 ) i
24042 integer ( kind = 4 ) j
24043 integer ( kind = 4 ) k
24044 integer ( kind = 4 ) value
24048 if ( i < 1 .or. m < i )
then
24049 write ( *,
'(a)' )
' '
24050 write ( *,
'(a)' )
'R8ROW_COMPARE - Fatal error!'
24051 write ( *,
'(a)' )
' Row index I is out of bounds.'
24052 write ( *,
'(a,i8)' )
' I = ', i
24056 if ( j < 1 .or. m < j )
then
24057 write ( *,
'(a)' )
' '
24058 write ( *,
'(a)' )
'R8ROW_COMPARE - Fatal error!'
24059 write ( *,
'(a)' )
' Row index J is out of bounds.'
24060 write ( *,
'(a,i8)' )
' J = ', j
24072 do while ( k <= n )
24074 if ( a(i,k) < a(j,k) )
then
24077 else if ( a(j,k) < a(i,k) )
then
24132 integer ( kind = 4 ) m
24133 integer ( kind = 4 ) n
24135 real ( kind = 8 ) a(m,n)
24136 real ( kind = 8 ) amax(m)
24137 integer ( kind = 4 ) i
24138 integer ( kind = 4 ) j
24144 if ( amax(i) < a(i,j) )
then
24196 integer ( kind = 4 ) m
24197 integer ( kind = 4 ) n
24199 real ( kind = 8 ) a(m,n)
24200 integer ( kind = 4 ) i
24201 real ( kind = 8 ) mean(m)
24204 mean(i) = sum( a(i,1:n) ) / real( n, kind = 8 )
24253 integer ( kind = 4 ) m
24254 integer ( kind = 4 ) n
24256 real ( kind = 8 ) a(m,n)
24257 real ( kind = 8 ) amin(m)
24258 integer ( kind = 4 ) i
24259 integer ( kind = 4 ) j
24265 if ( a(i,j) < amin(i) )
then
24348 integer ( kind = 4 ) m
24349 integer ( kind = 4 ) n
24351 real ( kind = 8 ) a(m,n)
24352 integer ( kind = 4 ) j
24353 integer ( kind = 4 ) k
24354 real ( kind = 8 ) key(n)
24355 integer ( kind = 4 ) l
24356 integer ( kind = 4 ) r
24357 logical ( kind = 4 ) r8vec_eq
24358 logical ( kind = 4 ) r8vec_gt
24359 logical ( kind = 4 ) r8vec_lt
24362 write ( *,
'(a)' )
' '
24363 write ( *,
'(a)' )
'R8ROW_PART_QUICK_A - Fatal error!'
24364 write ( *,
'(a)' )
' M < 1.'
24374 key(1:n) = a(1,1:n)
24384 if ( r8vec_gt( n, a(l+1,1:n), key(1:n) ) )
then
24387 else if ( r8vec_eq( n, a(l+1,1:n), key(1:n) ) )
then
24391 else if ( r8vec_lt( n, a(l+1,1:n), key(1:n) ) )
then
24400 a(j,1:n) = a(j+k,1:n)
24405 do j = l - k + 1, l
24406 a(j,1:n) = key(1:n)
24459 integer ( kind = 4 ) m
24460 integer ( kind = 4 ) n
24462 real ( kind = 8 ) a(m,n)
24463 integer ( kind = 4 ) i
24464 integer ( kind = 4 ) ihi
24465 integer ( kind = 4 ) j
24466 real ( kind = 8 ) t(n)
24472 a(i,1:n) = a(m+1-i,1:n)
24473 a(m+1-i,1:n) = t(1:n)
24521 integer ( kind = 4 ) m
24522 integer ( kind = 4 ) n
24524 real ( kind = 8 ) a(m,n)
24525 integer ( kind = 4 ) i
24526 integer ( kind = 4 ) indx
24527 integer ( kind = 4 ) isgn
24528 integer ( kind = 4 ) j
24553 if ( 0 < indx )
then
24559 else if ( indx < 0 )
then
24563 else if ( indx == 0 )
then
24622 integer ( kind = 4 ) m
24623 integer ( kind = 4 ) n
24625 real ( kind = 8 ) a(m,n)
24626 integer ( kind = 4 ) i
24627 integer ( kind = 4 ) indx(m)
24628 integer ( kind = 4 ) indxt
24629 integer ( kind = 4 ) ir
24630 integer ( kind = 4 ) isgn
24631 integer ( kind = 4 ) j
24632 integer ( kind = 4 ) l
24633 real ( kind = 8 ) row(n)
24656 row(1:n) = a(indxt,1:n)
24661 row(1:n) = a(indxt,1:n)
24665 if ( ir == 1 )
then
24675 do while ( j <= ir )
24681 if ( isgn < 0 )
then
24689 if ( isgn < 0 )
then
24741 integer ( kind = 4 ),
parameter :: level_max = 30
24742 integer ( kind = 4 ) m
24743 integer ( kind = 4 ) n
24745 real ( kind = 8 ) a(m,n)
24746 integer ( kind = 4 ) base
24747 integer ( kind = 4 ) l_segment
24748 integer ( kind = 4 ) level
24749 integer ( kind = 4 ) m_segment
24750 integer ( kind = 4 ) rsave(level_max)
24751 integer ( kind = 4 ) r_segment
24758 write ( *,
'(a)' )
' '
24759 write ( *,
'(a)' )
'R8ROW_SORT_QUICK_A - Fatal error!'
24760 write ( *,
'(a)' )
' M < 1.'
24761 write ( *,
'(a,i8)' )
' M = ', m
24770 rsave(level) = m + 1
24779 l_segment, r_segment )
24783 if ( 1 < l_segment )
then
24785 if ( level_max < level )
then
24786 write ( *,
'(a)' )
' '
24787 write ( *,
'(a)' )
'R8ROW_SORT_QUICK_A - Fatal error!'
24788 write ( *,
'(a,i8)' )
' Exceeding recursion maximum of ', level_max
24793 m_segment = l_segment
24794 rsave(level) = r_segment + base - 1
24799 else if ( r_segment < m_segment )
then
24801 m_segment = m_segment + 1 - r_segment
24802 base = base + r_segment - 1
24810 if ( level <= 1 )
then
24814 base = rsave(level)
24815 m_segment = rsave(level-1) - rsave(level)
24818 if ( 0 < m_segment )
then
24866 integer ( kind = 4 ) m
24867 integer ( kind = 4 ) n
24869 real ( kind = 8 ) a(m,n)
24870 integer ( kind = 4 ) i1
24871 integer ( kind = 4 ) i2
24872 integer ( kind = 4 ) unique_num
24884 if ( any( a(i1,1:n) /= a(i2,1:n) ) )
then
24885 unique_num = unique_num + 1
24927 integer ( kind = 4 ) m
24928 integer ( kind = 4 ) n
24930 real ( kind = 8 ) a(m,n)
24931 integer ( kind = 4 ) i
24932 real ( kind = 8 ) rowsum(m)
24935 rowsum(i) = sum( a(i,1:n) )
24973 integer ( kind = 4 ) m
24974 integer ( kind = 4 ) n
24976 real ( kind = 8 ) a(m,n)
24977 integer ( kind = 4 ) i1
24978 integer ( kind = 4 ) i2
24979 real ( kind = 8 ) row(n)
24981 if ( i1 < 1 .or. m < i1 )
then
24982 write ( *,
'(a)' )
' '
24983 write ( *,
'(a)' )
'R8ROW_SWAP - Fatal error!'
24984 write ( *,
'(a)' )
' I1 is out of range.'
24985 write ( *,
'(a,i8)' )
' I1 = ', i1
24989 if ( i2 < 1 .or. m < i2 )
then
24990 write ( *,
'(a)' )
' '
24991 write ( *,
'(a)' )
'R8ROW_SWAP - Fatal error!'
24992 write ( *,
'(a)' )
' I2 is out of range.'
24993 write ( *,
'(a,i8)' )
' I2 = ', i2
24997 if ( i1 == i2 )
then
25001 row(1:n) = a(i1,1:n)
25002 a(i1,1:n) = a(i2,1:n)
25003 a(i2,1:n) = row(1:n)
25051 integer ( kind = 4 ) m
25052 integer ( kind = 4 ) n
25054 real ( kind = 8 ) a(m,n)
25055 integer ( kind = 4 ) i
25056 integer ( kind = 4 ) j
25057 real ( kind = 8 ) x(m*n)
25061 x(j:j+n-1) = a(i,1:n)
25101 integer ( kind = 4 ) m
25102 integer ( kind = 4 ) n
25104 real ( kind = 8 ) a(m,n)
25105 integer ( kind = 4 ) i
25106 integer ( kind = 4 ) j
25107 real ( kind = 8 ) mean
25108 real ( kind = 8 ) variance(m)
25112 mean = sum( a(i,1:n) ) / real( n, kind = 8 )
25114 variance(i) = 0.0d+00
25116 variance(i) = variance(i) + ( a(i,j) - mean )**2
25120 variance(i) = variance(i) / real( n - 1, kind = 8 )
25122 variance(i) = 0.0d+00
25170 integer ( kind = 4 ) m
25171 integer ( kind = 4 ) n
25173 real ( kind = 8 ) a(*)
25174 integer ( kind = 4 ) i
25175 integer ( kind = 4 ) indx(10)
25176 integer ( kind = 4 ) j
25177 integer ( kind = 4 ) jhi
25178 integer ( kind = 4 ) jlo
25179 integer ( kind = 4 ) jmax
25180 integer ( kind = 4 ) nn
25181 integer ( kind = 4 ) size
25182 character ( len = * ) title
25184 write ( *,
'(a)' )
' '
25185 write ( *,
'(a)' ) trim( title )
25187 jmax = min( n, m - 1 )
25189 if ( m-1 <= n )
then
25190 size = ( m * ( m - 1 ) ) / 2
25191 else if ( n < m-1 )
then
25192 size = ( n * ( n - 1 ) ) / 2 + ( m - n - 1 ) * n
25195 if ( all( a(1:size) == aint( a(1:size) ) ) )
then
25199 do jlo = 1, jmax, nn
25200 jhi = min( jlo + nn - 1, m - 1, jmax )
25201 write ( *,
'(a)' )
' '
25202 write ( *,
'(a8,10i8)' )
' Col', ( j, j = jlo, jhi )
25203 write ( *,
'(a8)' )
' Row'
25205 jhi = min( jlo + nn - 1, i - 1, jmax )
25207 indx(j+1-jlo) = ( j - 1 ) * m + i - ( j * ( j + 1 ) ) / 2
25209 write ( *,
'(2x,i8,10i8)' ) i, int( a(indx(1:jhi+1-jlo)) )
25213 else if ( maxval( abs( a(1:size) ) ) < 1000000.0d+00 )
then
25217 do jlo = 1, jmax, nn
25218 jhi = min( jlo + nn - 1, m - 1, jmax )
25219 write ( *,
'(a)' )
' '
25220 write ( *,
'(a10,5(i8,6x))' )
' Col', ( j, j = jlo, jhi )
25221 write ( *,
'(a10)' )
' Row'
25223 jhi = min( jlo + nn - 1, i - 1, jmax )
25225 indx(j+1-jlo) = ( j - 1 ) * m + i - ( j * ( j + 1 ) ) / 2
25227 write ( *,
'(2x,i8,5f14.6)' ) i, a(indx(1:jhi+1-jlo))
25235 do jlo = 1, jmax, nn
25236 jhi = min( jlo + nn - 1, m - 1, jmax )
25237 write ( *,
'(a)' )
' '
25238 write ( *,
'(a10,5(i8,6x))' )
' Col', ( j, j = jlo, jhi )
25239 write ( *,
'(a10)' )
' Row'
25241 jhi = min( jlo + nn - 1, i - 1, jmax )
25243 indx(j+1-jlo) = ( j - 1 ) * m + i - ( j * ( j + 1 ) ) / 2
25245 write ( *,
'(2x,i8,5g14.6)' ) i, a(indx(1:jhi+1-jlo))
25293 integer ( kind = 4 ) n
25295 real ( kind = 8 ) a(n)
25296 real ( kind = 8 ) amax
25297 real ( kind = 8 ) amax2
25298 real ( kind = 8 ) amax3
25299 real ( kind = 8 ) amin
25300 real ( kind = 8 ) amin2
25301 real ( kind = 8 ) amin3
25303 if ( amax == amin )
then
25308 amax2 = max( amax, amin )
25309 amin2 = min( amax, amin )
25311 amin3 = minval( a(1:n) )
25312 amax3 = maxval( a(1:n) )
25314 if ( amax3 /= amin3 )
then
25316 a(1:n) = ( ( amax3 - a(1:n) ) * amin2 &
25317 + ( a(1:n) - amin3 ) * amax2 ) &
25318 / ( amax3 - amin3 )
25322 a(1:n) = 0.5d+00 * ( amax2 + amin2 )
25365 integer ( kind = 4 ) n
25367 real ( kind = 8 ) a(n)
25368 real ( kind = 8 ) amax
25369 real ( kind = 8 ) amin
25371 amax = maxval( a(1:n) )
25372 amin = minval( a(1:n) )
25374 if ( amin == amax )
then
25377 a(1:n) = ( a(1:n) - amin ) / ( amax - amin )
25420 integer ( kind = 4 ) n
25422 real ( kind = 8 ) a(n)
25423 real ( kind = 8 ) amax
25424 real ( kind = 8 ) amin
25425 real ( kind = 8 ) b(n)
25426 real ( kind = 8 ) bmax
25427 real ( kind = 8 ) bmin
25429 if ( bmax == bmin )
then
25434 amin = minval( a(1:n) )
25435 amax = maxval( a(1:n) )
25437 if ( amax == amin )
then
25438 b(1:n) = 0.5d+00 * ( bmax + bmin )
25442 b(1:n) = ( ( amax - a(1:n) ) * bmin &
25443 + ( a(1:n) - amin ) * bmax ) &
25481 integer ( kind = 4 ) n
25483 real ( kind = 8 ) a(n)
25523 integer ( kind = 4 ) n
25525 real ( kind = 8 ) a(n)
25526 real ( kind = 8 ) amax
25528 amax = maxval( abs( a(1:n) ) )
25565 integer ( kind = 4 ) n
25567 real ( kind = 8 ) a(n)
25568 real ( kind = 8 ) amax
25569 integer ( kind = 4 ) amax_index
25570 integer ( kind = 4 ) i
25582 if ( amax < abs( a(i) ) )
then
25625 integer ( kind = 4 ) n
25627 real ( kind = 8 ) a(n)
25628 real ( kind = 8 ) amin
25630 amin = minval( abs( a(1:n) ) )
25667 integer ( kind = 4 ) n
25669 real ( kind = 8 ) a(n)
25670 real ( kind = 8 ) amin
25671 integer ( kind = 4 ) amin_index
25672 integer ( kind = 4 ) i
25684 if ( abs( a(i) ) < amin )
then
25727 integer ( kind = 4 ) n
25729 real ( kind = 8 ) a(n)
25769 integer ( kind = 4 ) n
25771 real ( kind = 8 ) a(n)
25816 integer ( kind = 4 ) dim_num
25818 integer ( kind = 4 ) i
25819 integer ( kind = 4 ) j
25820 integer ( kind = 4 ) k
25822 real ( kind = 8 ) v1(dim_num)
25823 real ( kind = 8 ) v2(dim_num)
25824 real ( kind = 8 ) vj
25825 real ( kind = 8 ) vk
25827 if ( dim_num < 2 )
then
25828 write ( *,
'(a)' )
' '
25829 write ( *,
'(a)' )
'R8VEC_ANY_NORMAL - Fatal error!'
25830 write ( *,
'(a)' )
' Called with DIM_NUM < 2.'
25834 if (
r8vec_norm( dim_num, v1 ) == 0.0d+00 )
then
25836 v2(2:dim_num) = 0.0d+00
25854 if ( abs( vk ) < abs( v1(i) ) .or. k < 1 )
then
25856 if ( abs( vj ) < abs( v1(i) ) .or. j < 1 )
then
25873 v2(1:dim_num) = 0.0d+00
25875 v2(j) = - vk / sqrt( vk * vk + vj * vj )
25876 v2(k) = vj / sqrt( vk * vk + vj * vj )
25923 integer ( kind = 4 ) n
25925 integer ( kind = 4 ) i
25927 real ( kind = 8 ) x(n)
25930 if ( x(i+1) < x(i) )
then
25983 integer ( kind = 4 ) n
25985 integer ( kind = 4 ) i
25987 real ( kind = 8 ) x(n)
25990 if ( x(i+1) <= x(i) )
then
26000subroutine r8vec_bin ( n, x, bin_num, bin_min, bin_max, bin, bin_limit )
26059 integer ( kind = 4 ) n
26060 integer ( kind = 4 ) bin_num
26062 integer ( kind = 4 ) bin(0:bin_num+1)
26063 real ( kind = 8 ) bin_limit(0:bin_num)
26064 real ( kind = 8 ) bin_max
26065 real ( kind = 8 ) bin_min
26066 integer ( kind = 4 ) i
26067 integer ( kind = 4 ) j
26068 real ( kind = 8 ) t
26069 real ( kind = 8 ) x(n)
26071 if ( bin_max == bin_min )
then
26072 write ( *,
'(a)' )
' '
26073 write ( *,
'(a)' )
'R8VEC_BIN - Fatal error!'
26074 write ( *,
'(a)' )
' BIN_MIN = BIN_MAX.'
26078 bin(0:bin_num+1) = 0
26082 t = ( x(i) - bin_min ) / ( bin_max - bin_min )
26084 if ( t < 0.0d+00 )
then
26086 else if ( 1.0d+00 <= t )
then
26089 j = 1 + int( real( bin_num, kind = 8 ) * t )
26092 bin(j) = bin(j) + 1
26099 bin_limit(i) = ( real( bin_num - i, kind = 8 ) * bin_min &
26100 + real( i, kind = 8 ) * bin_max ) &
26101 / real( bin_num, kind = 8 )
26148 integer ( kind = 4 ) n
26150 real ( kind = 8 ) t1
26151 real ( kind = 8 ) t2
26152 real ( kind = 8 ) x(n)
26153 real ( kind = 8 ) x1(n)
26154 real ( kind = 8 ) x2(n)
26156 x(1:n) = t1 * x1(1:n) + t2 * x2(1:n)
26210 integer ( kind = 4 ) n
26212 integer ( kind = 4 ) i
26213 integer ( kind = 4 ) left
26214 integer ( kind = 4 ) right
26215 real ( kind = 8 ) x(n)
26216 real ( kind = 8 ) xval
26220 if ( xval < x(i) )
then
26298 integer ( kind = 4 ) n
26300 integer ( kind = 4 ) high
26301 integer ( kind = 4 ) left
26302 integer ( kind = 4 ) low
26303 integer ( kind = 4 ) right
26304 integer ( kind = 4 ) start
26305 real ( kind = 8 ) x(n)
26306 real ( kind = 8 ) xval
26311 write ( *,
'(a)' )
' '
26312 write ( *,
'(a)' )
'R8VEC_BRACKET2 - Fatal error!'
26313 write ( *,
'(a)' )
' N < 1.'
26317 if ( start < 1 .or. n < start )
then
26318 start = ( n + 1 ) / 2
26323 if ( x(start) == xval )
then
26331 else if ( x(start) < xval )
then
26335 if ( n < start + 1 )
then
26343 else if ( xval == x(start+1) )
then
26351 else if ( xval < x(start+1) )
then
26359 else if ( n < start + 2 )
then
26367 else if ( xval == x(start+2) )
then
26375 else if ( xval < x(start+2) )
then
26388 call r8vec_bracket ( high + 1 - low, x(low), xval, left, right )
26389 left = left + low - 1
26390 right = right + low - 1
26396 else if ( start == 1 )
then
26404 else if ( xval == x(start-1) )
then
26412 else if ( x(start-1) <= xval )
then
26425 call r8vec_bracket ( high + 1 - low, x(1), xval, left, right )
26485 integer ( kind = 4 ) n
26487 integer ( kind = 4 ) high
26488 integer ( kind = 4 ) left
26489 integer ( kind = 4 ) low
26490 integer ( kind = 4 ) mid
26491 real ( kind = 8 ) t(n)
26492 real ( kind = 8 ) tval
26497 write ( *,
'(a)' )
' '
26498 write ( *,
'(a)' )
'R8VEC_BRACKET3 - Fatal error!'
26499 write ( *,
'(a)' )
' N must be at least 2.'
26505 if ( left < 1 .or. n - 1 < left )
then
26506 left = ( n + 1 ) / 2
26512 if ( tval < t(left) )
then
26514 if ( left == 1 )
then
26516 else if ( left == 2 )
then
26519 else if ( t(left-1) <= tval )
then
26522 else if ( tval <= t(2) )
then
26534 if ( low == high )
then
26539 mid = ( low + high + 1 ) / 2
26541 if ( t(mid) <= tval )
then
26552 else if ( t(left+1) < tval )
then
26554 if ( left == n - 1 )
then
26556 else if ( left == n - 2 )
then
26559 else if ( tval <= t(left+2) )
then
26562 else if ( t(n-1) <= tval )
then
26574 if ( low == high )
then
26579 mid = ( low + high + 1 ) / 2
26581 if ( t(mid) <= tval )
then
26650 integer ( kind = 4 ) ns
26651 integer ( kind = 4 ) nt
26653 integer ( kind = 4 ) high
26654 integer ( kind = 4 ) i
26655 integer ( kind = 4 ) left(ns)
26656 integer ( kind = 4 ) low
26657 integer ( kind = 4 ) mid
26658 real ( kind = 8 ) s(ns)
26659 real ( kind = 8 ) t(nt)
26664 write ( *,
'(a)' )
' '
26665 write ( *,
'(a)' )
'R8VEC_BRACKET4 - Fatal error!'
26666 write ( *,
'(a)' )
' NT must be at least 2.'
26672 left(i) = ( nt + 1 ) / 2
26677 if ( s(i) < t(left(i)) )
then
26679 if ( left(i) == 1 )
then
26681 else if ( left(i) == 2 )
then
26684 else if ( t(left(i)-1) <= s(i) )
then
26685 left(i) = left(i) - 1
26687 else if ( s(i) <= t(2) )
then
26699 if ( low == high )
then
26704 mid = ( low + high + 1 ) / 2
26706 if ( t(mid) <= s(i) )
then
26717 else if ( t(left(i)+1) < s(i) )
then
26719 if ( left(i) == nt - 1 )
then
26721 else if ( left(i) == nt - 2 )
then
26722 left(i) = left(i) + 1
26724 else if ( s(i) <= t(left(i)+2) )
then
26725 left(i) = left(i) + 1
26727 else if ( t(nt-1) <= s(i) )
then
26739 if ( low == high )
then
26744 mid = ( low + high + 1 ) / 2
26746 if ( t(mid) <= s(i) )
then
26807 integer ( kind = 4 ) nd
26809 integer ( kind = 4 ) b
26810 integer ( kind = 4 ) l
26811 integer ( kind = 4 ) m
26812 integer ( kind = 4 ) r
26814 real ( kind = 8 ) xd(nd)
26815 real ( kind = 8 ) xi
26817 if ( xi < xd(1) .or. xd(nd) < xi )
then
26826 do while ( l + 1 < r )
26828 if ( xi < xd(m) )
then
26887 integer ( kind = 4 ) nd
26888 integer ( kind = 4 ) ni
26890 integer ( kind = 4 ) b(ni)
26891 integer ( kind = 4 ) i
26892 integer ( kind = 4 ) l
26893 integer ( kind = 4 ) m
26894 integer ( kind = 4 ) r
26895 real ( kind = 8 ) xd(nd)
26896 real ( kind = 8 ) xi(ni)
26900 if ( xi(i) < xd(1) .or. xd(nd) < xi(i) )
then
26909 do while ( l + 1 < r )
26911 if ( xi(i) < xd(m) )
then
26967 integer ( kind = 4 ) n
26969 real ( kind = 8 ) ceilingvec(n)
26970 integer ( kind = 4 ) i
26971 real ( kind = 8 ) r8vec(n)
26972 real ( kind = 8 ) value
26976 value = real( int( r8vec(i) ), kind = 8 )
26978 if (
value < r8vec(i) )
then
26979 value =
value + 1.0d+00
26982 ceilingvec(i) =
value
27020 integer ( kind = 4 ) n
27022 real ( kind = 8 ) a
27023 real ( kind = 8 ) b
27024 real ( kind = 8 ) c
27025 integer ( kind = 4 ) i
27026 real ( kind = 8 ), parameter ::
r8_pi = 3.141592653589793d+00
27027 real ( kind = 8 ) theta
27028 real ( kind = 8 ) x(n)
27032 x(1) = ( a + b ) / 2.0d+00
27038 theta = real( n - i, kind = 8 ) *
r8_pi &
27039 / real( n - 1, kind = 8 )
27043 if ( mod( n, 2 ) == 1 )
then
27044 if ( 2 * i - 1 == n )
then
27049 x(i) = ( ( 1.0d+00 - c ) * a &
27050 + ( 1.0d+00 + c ) * b ) &
27091 integer ( kind = 4 ) n
27093 real ( kind = 8 ) a
27094 real ( kind = 8 ) b
27095 real ( kind = 8 ) c
27096 integer ( kind = 4 ) i
27097 real ( kind = 8 ), parameter ::
r8_pi = 3.141592653589793d+00
27098 real ( kind = 8 ) theta
27099 real ( kind = 8 ) x(n)
27103 x(1) = ( a + b ) / 2.0d+00
27109 theta = real( 2 * ( n - i ) + 1, kind = 8 ) *
r8_pi &
27110 / real( 2 * n, kind = 8 )
27114 if ( mod( n, 2 ) == 1 )
then
27115 if ( 2 * i - 1 == n )
then
27120 x(i) = ( ( 1.0d+00 - c ) * a &
27121 + ( 1.0d+00 + c ) * b ) &
27162 integer ( kind = 4 ) n
27164 real ( kind = 8 ) a
27165 real ( kind = 8 ) b
27166 real ( kind = 8 ) c
27167 integer ( kind = 4 ) i
27168 real ( kind = 8 ), parameter ::
r8_pi = 3.141592653589793d+00
27169 real ( kind = 8 ) theta
27170 real ( kind = 8 ) x(n)
27174 x(1) = ( a + b ) / 2.0d+00
27180 theta = real( n - i, kind = 8 ) *
r8_pi / real( n - 1, kind = 8 )
27184 if ( mod( n, 2 ) == 1 )
then
27185 if ( 2 * i - 1 == n )
then
27190 x(i) = ( ( 1.0d+00 - c ) * a &
27191 + ( 1.0d+00 + c ) * b ) &
27233 integer ( kind = 4 ) n
27235 real ( kind = 8 ) circular_variance
27236 real ( kind = 8 ) mean
27237 real ( kind = 8 ) x(n)
27241 circular_variance = &
27242 ( sum( cos( x(1:n) - mean ) ) )**2 &
27243 + ( sum( sin( x(1:n) - mean ) ) )**2
27245 circular_variance = sqrt( circular_variance ) / real( n, kind = 8 )
27247 circular_variance = 1.0d+00 - circular_variance
27299 integer ( kind = 4 ) n
27301 real ( kind = 8 ) a1(n)
27302 real ( kind = 8 ) a2(n)
27303 integer ( kind = 4 ) isgn
27304 integer ( kind = 4 ) k
27310 do while ( k <= n )
27312 if ( a1(k) < a2(k) )
then
27315 else if ( a2(k) < a1(k) )
then
27362 integer ( kind = 4 ) n1
27363 integer ( kind = 4 ) n2
27365 real ( kind = 8 ) a(n1)
27366 real ( kind = 8 ) b(n2)
27367 real ( kind = 8 ) c(n1+n2)
27370 c(n1+1:n1+n2) = b(1:n2)
27440 integer ( kind = 4 ) m
27441 integer ( kind = 4 ) n
27443 integer ( kind = 4 ) j
27444 real ( kind = 8 ) x(m)
27445 real ( kind = 8 ) y(n)
27446 real ( kind = 8 ) z(m+n-1)
27448 z(1:m+n-1) = 0.0d+00
27451 z(j:j+m-1) = z(j:j+m-1) + x(1:m) * y(j)
27525 integer ( kind = 4 ) n
27527 integer ( kind = 4 ) m
27528 real ( kind = 8 ) x(n)
27529 real ( kind = 8 ) y(n)
27530 real ( kind = 8 ) z(n)
27533 z(m) = dot_product( x(1:m), y(m:1:-1) ) &
27534 + dot_product( x(m+1:n), y(n:m+1:-1) )
27571 integer ( kind = 4 ) n
27573 real ( kind = 8 ) a1(n)
27574 real ( kind = 8 ) a2(n)
27618 integer ( kind = 4 ) n
27620 real ( kind = 8 ) correlation
27622 real ( kind = 8 ) x(n)
27623 real ( kind = 8 ) x_norm
27624 real ( kind = 8 ) xy_dot
27625 real ( kind = 8 ) y(n)
27626 real ( kind = 8 ) y_norm
27630 xy_dot = dot_product( x(1:n), y(1:n) )
27632 if ( x_norm == 0.0d+00 .or. y_norm == 0.0d+00 )
then
27633 correlation = 0.0d+00
27635 correlation = xy_dot / x_norm / y_norm
27668 integer ( kind = 4 ) n
27670 integer ( kind = 4 ) i
27672 real ( kind = 8 ) value
27673 real ( kind = 8 ) x(n)
27674 real ( kind = 8 ) x_average
27675 real ( kind = 8 ) y(n)
27676 real ( kind = 8 ) y_average
27678 x_average = sum( x(1:n) ) / real( n, kind = 8 )
27679 y_average = sum( y(1:n) ) / real( n, kind = 8 )
27683 value =
value + ( x(i) - x_average ) * ( y(i) - y_average )
27724 real ( kind = 8 ) v1(2)
27725 real ( kind = 8 ) v2(2)
27768 real ( kind = 8 ) v0(2)
27769 real ( kind = 8 ) v1(2)
27770 real ( kind = 8 ) v2(2)
27773 ( v1(1) - v0(1) ) * ( v2(2) - v0(2) ) &
27774 - ( v2(1) - v0(1) ) * ( v1(2) - v0(2) )
27819 real ( kind = 8 ) v1(3)
27820 real ( kind = 8 ) v2(3)
27821 real ( kind = 8 ) v3(3)
27823 v3(1) = v1(2) * v2(3) - v1(3) * v2(2)
27824 v3(2) = v1(3) * v2(1) - v1(1) * v2(3)
27825 v3(3) = v1(1) * v2(2) - v1(2) * v2(1)
27874 real ( kind = 8 ) v0(3)
27875 real ( kind = 8 ) v1(3)
27876 real ( kind = 8 ) v2(3)
27877 real ( kind = 8 ) v3(3)
27879 v3(1) = ( v1(2) - v0(2) ) * ( v2(3) - v0(3) ) &
27880 - ( v2(2) - v0(2) ) * ( v1(3) - v0(3) )
27882 v3(2) = ( v1(3) - v0(3) ) * ( v2(1) - v0(1) ) &
27883 - ( v2(3) - v0(3) ) * ( v1(1) - v0(1) )
27885 v3(3) = ( v1(1) - v0(1) ) * ( v2(2) - v0(2) ) &
27886 - ( v2(1) - v0(1) ) * ( v1(2) - v0(2) )
27930 integer ( kind = 4 ) n
27932 real ( kind = 8 ) a(n)
27933 real ( kind = 8 ) a_cum(n)
27934 integer ( kind = 4 ) i
27939 a_cum(i) = a_cum(i-1) + a(i)
27984 integer ( kind = 4 ) n
27986 real ( kind = 8 ) a(n)
27987 real ( kind = 8 ) a_cum(0:n)
27988 integer ( kind = 4 ) i
27993 a_cum(i) = a_cum(i-1) + a(i)
28084 integer ( kind = 4 ) n
28086 real ( kind = 8 ) cof(0:n)
28087 real ( kind = 8 ) h
28088 integer ( kind = 4 ) i
28089 integer ( kind = 4 ) j
28092 write ( *,
'(a)' )
' '
28093 write ( *,
'(a)' )
'R8VEC_DIF - Fatal error!'
28094 write ( *,
'(a,i8)' )
' Derivative order N = ', n
28095 write ( *,
'(a)' )
' but N must be at least 0.'
28099 if ( h <= 0.0d+00 )
then
28100 write ( *,
'(a)' )
' '
28101 write ( *,
'(a)' )
'R8VEC_DIF - Fatal error!'
28102 write ( *,
'(a,g14.6)' )
' The half sampling spacing is H = ', h
28103 write ( *,
'(a)' )
' but H must be positive.'
28111 do j = i - 1, 1, -1
28112 cof(j) = -cof(j) + cof(j-1)
28121 cof(0:n) = cof(0:n) / ( 2.0d+00 * h )**n
28160 integer ( kind = 4 ) n
28162 integer ( kind = 4 ) i
28164 real ( kind = 8 ) u1(n)
28165 real ( kind = 8 ) u2(n)
28166 real ( kind = 8 ) v1(n)
28167 real ( kind = 8 ) v2(n)
28168 real ( kind = 8 ) value
28172 value =
value + ( u1(i) - v1(i) ) * ( u2(i) - v2(i) )
28215 integer ( kind = 4 ) n
28217 real ( kind = 8 ) a(n)
28218 real ( kind = 8 ) b(n)
28261 integer ( kind = 4 ) n
28263 real ( kind = 8 ) a(n)
28264 real ( kind = 8 ) b(n)
28307 integer ( kind = 4 ) n
28309 real ( kind = 8 ) a(n)
28310 real ( kind = 8 ) b(n)
28353 integer ( kind = 4 ) n
28355 real ( kind = 8 ) a(n)
28356 real ( kind = 8 ) b(n)
28398 integer ( kind = 4 ) n
28400 real ( kind = 8 ) a(n)
28401 real ( kind = 8 ) b(n)
28409 factor_num, point_num, x )
28534 integer ( kind = 4 ) factor_num
28535 integer ( kind = 4 ) factor_order
28536 integer ( kind = 4 ) point_num
28538 integer ( kind = 4 ),
save :: contig
28539 integer ( kind = 4 ) factor_index
28540 real ( kind = 8 ) factor_value(factor_order)
28541 integer ( kind = 4 ) j
28542 integer ( kind = 4 ) k
28543 integer ( kind = 4 ),
save :: rep
28544 integer ( kind = 4 ),
save :: skip
28545 integer ( kind = 4 ) start
28546 real ( kind = 8 ) x(factor_num,point_num)
28548 if ( factor_index == 1 )
then
28552 x(1:factor_num,1:point_num) = 0.0d+00
28555 rep = rep / factor_order
28556 skip = skip * factor_order
28558 do j = 1, factor_order
28560 start = 1 + ( j - 1 ) * contig
28563 x(factor_index,start:start+contig-1) = factor_value(j)
28564 start = start + skip
28569 contig = contig * factor_order
28574 factor_num, point_num, w )
28699 integer ( kind = 4 ) factor_num
28700 integer ( kind = 4 ) factor_order
28701 integer ( kind = 4 ) point_num
28703 integer ( kind = 4 ),
save :: contig
28704 integer ( kind = 4 ) factor_index
28705 real ( kind = 8 ) factor_value(factor_order)
28706 integer ( kind = 4 ) j
28707 integer ( kind = 4 ) k
28708 integer ( kind = 4 ),
save :: rep
28709 integer ( kind = 4 ),
save :: skip
28710 integer ( kind = 4 ) start
28711 real ( kind = 8 ) w(point_num)
28713 if ( factor_index == 1 )
then
28717 w(1:point_num) = 1.0d+00
28720 rep = rep / factor_order
28721 skip = skip * factor_order
28723 do j = 1, factor_order
28725 start = 1 + ( j - 1 ) * contig
28728 w(start:start+contig-1) = w(start:start+contig-1) * factor_value(j)
28729 start = start + skip
28734 contig = contig * factor_order
28771 integer ( kind = 4 ) dim_num
28774 real ( kind = 8 ) v1(dim_num)
28775 real ( kind = 8 ) v2(dim_num)
28777 r8vec_distance = sqrt( sum( ( v1(1:dim_num) - v2(1:dim_num) )**2 ) )
28814 integer ( kind = 4 ) n
28816 real ( kind = 8 ) a(n)
28817 integer ( kind = 4 ) i
28818 integer ( kind = 4 ) j
28825 if ( a(i) == a(j) )
then
28870 integer ( kind = 4 ) n
28873 real ( kind = 8 ) v1(n)
28874 real ( kind = 8 ) v2(n)
28910 integer ( kind = 4 ) n
28913 real ( kind = 8 ) v0(n)
28914 real ( kind = 8 ) v1(n)
28915 real ( kind = 8 ) v2(n)
28918 v1(1:n) - v0(1:n), &
28919 v2(1:n) - v0(1:n) )
28960 integer ( kind = 4 ) n
28962 integer ( kind = 4 ) i
28965 real ( kind = 8 ) value
28966 real ( kind = 8 ) x(n)
28967 real ( kind = 8 ) x_sum
28968 real ( kind = 8 ) xi
28970 if ( any( x(1:n) < 0.0d+00 ) )
then
28971 write ( *,
'(a)' )
' '
28972 write ( *,
'(a)' )
'R8VEC_ENTROPY - Fatal error!'
28973 write ( *,
'(a)' )
' Some entries are negative.'
28977 x_sum = sum( x(1:n) )
28979 if ( x_sum == 0.0d+00 )
then
28980 write ( *,
'(a)' )
' '
28981 write ( *,
'(a)' )
'R8VEC_ENTROPY - Fatal error!'
28982 write ( *,
'(a)' )
' Entries sum to 0.'
28988 if ( 0.0d+00 < x(i) )
then
28990 value =
value -
r8_log_2( xi ) * xi
29031 integer ( kind = 4 ) n
29033 real ( kind = 8 ) a1(n)
29034 real ( kind = 8 ) a2(n)
29037 r8vec_eq = ( all( a1(1:n) == a2(1:n) ) )
29080 integer ( kind = 4 ) n
29082 real ( kind = 8 ) a(n)
29083 real ( kind = 8 ) ahi
29084 real ( kind = 8 ) alo
29085 integer ( kind = 4 ) i
29089 a(1) = 0.5d+00 * ( alo + ahi )
29094 a(i) = ( real( n - i, kind = 8 ) * alo &
29095 + real( i - 1, kind = 8 ) * ahi ) &
29096 / real( n - 1, kind = 8 )
29145 integer ( kind = 4 ) n
29147 integer ( kind = 4 ) ival
29148 real ( kind = 8 ) xhi
29149 real ( kind = 8 ) xlo
29150 real ( kind = 8 ) xval
29154 xval = 0.5d+00 * ( xlo + xhi )
29158 xval = ( real( n - ival, kind = 8 ) * xlo &
29159 + real( ival - 1, kind = 8 ) * xhi ) &
29160 / real( n - 1, kind = 8 )
29225 integer ( kind = 4 ) maxval
29226 integer ( kind = 4 ) nold
29228 integer ( kind = 4 ) i
29229 integer ( kind = 4 ) j
29230 integer ( kind = 4 ) nadd
29231 integer ( kind = 4 ) nfill(nold-1)
29232 integer ( kind = 4 ) nval
29233 real ( kind = 8 ) xold(nold)
29234 real ( kind = 8 ) xval(maxval)
29240 if ( nfill(i) < 0 )
then
29241 write ( *,
'(a)' )
' '
29242 write ( *,
'(a)' )
'R8VEC_EVEN2 - Fatal error!'
29243 write ( *,
'(a,i8)' )
' NFILL(I) is negative for I = ', i
29244 write ( *,
'(a,i8)' )
' NFILL(I) = ', nfill(i)
29248 if ( maxval < nval + nfill(i) + 1 )
then
29249 write ( *,
'(a)' )
' '
29250 write ( *,
'(a)' )
'R8VEC_EVEN2 - Fatal error!'
29251 write ( *,
'(a)' )
' MAXVAL is not large enough. '
29252 write ( *,
'(a,i8)' )
' MAXVAL = ', maxval
29253 write ( *,
'(a)' )
' which is exceeded by storage requirements'
29254 write ( *,
'(a,i8)' )
' for interpolating in interval ', i
29258 nadd = nfill(i) + 2
29261 xval(nval+j-1) = ( real( nadd - j, kind = 8 ) * xold(i) &
29262 + real( j - 1, kind = 8 ) * xold(i+1) ) &
29263 / real( nadd - 1, kind = 8 )
29266 nval = nval + nfill(i) + 1
29315 integer ( kind = 4 ) n
29317 integer ( kind = 4 ) ival
29318 real ( kind = 8 ) xhi
29319 real ( kind = 8 ) xlo
29320 real ( kind = 8 ) xval
29322 xval = ( real( 2 * n - 2 * ival + 1, kind = 8 ) * xlo &
29323 + real( 2 * ival - 1, kind = 8 ) * xhi ) &
29324 / real( 2 * n, kind = 8 )
29378 integer ( kind = 4 ) nval
29379 integer ( kind = 4 ) nold
29381 real ( kind = 8 ) density
29382 integer ( kind = 4 ) i
29383 integer ( kind = 4 ) ival
29384 integer ( kind = 4 ) j
29385 integer ( kind = 4 ) nmaybe
29386 integer ( kind = 4 ) npts
29387 integer ( kind = 4 ) ntemp
29388 integer ( kind = 4 ) ntot
29389 real ( kind = 8 ) xlen
29390 real ( kind = 8 ) xleni
29391 real ( kind = 8 ) xlentot
29392 real ( kind = 8 ) xold(nold)
29393 real ( kind = 8 ) xval(nval)
29397 xlen = xlen + abs( xold(i+1) - xold(i) )
29400 ntemp = nval - nold
29402 density = real( ntemp, kind = 8 ) / xlen
29410 xleni = abs( xold(i+1) - xold(i) )
29411 npts = int( density * xleni )
29418 xlentot = xlentot + xleni
29419 nmaybe = nint( xlentot * density )
29421 if ( ntot < nmaybe )
then
29422 npts = npts + nmaybe - ntot
29427 xval(ival+j-1) = ( real( npts+2 - j, kind = 8 ) * xold(i) &
29428 + real( j - 1, kind = 8 ) * xold(i+1) ) &
29429 / real( npts+2 - 1, kind = 8 )
29432 ival = ival + npts + 1
29486 integer ( kind = 4 ) fat
29487 integer ( kind = 4 ) n
29489 integer ( kind = 4 ) i
29490 integer ( kind = 4 ) j
29491 integer ( kind = 4 ) k
29492 real ( kind = 8 ) x(n)
29493 real ( kind = 8 ) xfat((n-1)*(fat+1)+1)
29504 xfat(k) = ( real( fat - j + 1, kind = 8 ) * x(i) &
29505 + real( j, kind = 8 ) * x(i+1) ) &
29506 / real( fat + 1, kind = 8 )
29581 integer ( kind = 4 ) after
29582 integer ( kind = 4 ) before
29583 integer ( kind = 4 ) fat
29584 integer ( kind = 4 ) n
29586 integer ( kind = 4 ) i
29587 integer ( kind = 4 ) j
29588 integer ( kind = 4 ) k
29589 real ( kind = 8 ) x(n)
29590 real ( kind = 8 ) xfat(before+(n-1)*(fat+1)+1+after)
29596 do j = 1 - before + fat, fat
29598 xfat(k) = ( real( fat - j + 1, kind = 8 ) * ( x(1) - ( x(2) - x(1) ) ) &
29599 + real( j, kind = 8 ) * x(1) ) &
29600 / real( fat + 1, kind = 8 )
29612 xfat(k) = ( real( fat - j + 1, kind = 8 ) * x(i) &
29613 + real( j, kind = 8 ) * x(i+1) ) &
29614 / real( fat + 1, kind = 8 )
29626 xfat(k) = ( real( fat - j + 1, kind = 8 ) * x(n) &
29627 + real( j, kind = 8 ) &
29628 * ( x(n) + ( x(n) - x(n-1) ) ) ) &
29629 / real( fat + 1, kind = 8 )
29671 integer ( kind = 4 ) n
29673 real ( kind = 8 ) a(n)
29674 integer ( kind = 4 ) first_index(n)
29675 integer ( kind = 4 ) i
29676 integer ( kind = 4 ) j
29677 real ( kind = 8 ) tol
29679 first_index(1:n) = -1
29683 if ( first_index(i) == -1 )
then
29688 if ( abs( a(i) - a(j) ) <= tol )
then
29744 integer ( kind = 4 ) n
29746 integer ( kind = 4 ) floorvec(n)
29747 integer ( kind = 4 ) i
29748 real ( kind = 8 ) r8vec(n)
29749 integer ( kind = 4 ) value
29753 value = int( r8vec(i) )
29755 if ( r8vec(i) < real(
value, kind = 8 ) )
then
29759 floorvec(i) =
value
29806 integer ( kind = 4 ) n
29808 real ( kind = 8 ) a(n)
29809 real ( kind = 8 ) frac
29810 integer ( kind = 4 ) i
29811 integer ( kind = 4 ) iryt
29812 integer ( kind = 4 ) j
29813 integer ( kind = 4 ) k
29814 integer ( kind = 4 ) left
29815 real ( kind = 8 ) temp
29816 real ( kind = 8 ) x
29819 write ( *,
'(a)' )
' '
29820 write ( *,
'(a)' )
'R8VEC_FRAC - Fatal error!'
29821 write ( *,
'(a,i8)' )
' Illegal nonpositive value of N = ', n
29826 write ( *,
'(a)' )
' '
29827 write ( *,
'(a)' )
'R8VEC_FRAC - Fatal error!'
29828 write ( *,
'(a,i8)' )
' Illegal nonpositive value of K = ', k
29833 write ( *,
'(a)' )
' '
29834 write ( *,
'(a)' )
'R8VEC_FRAC - Fatal error!'
29835 write ( *,
'(a,i8)' )
' Illegal N < K, K = ', k
29844 if ( iryt <= left )
then
29867 do while ( a(i) < x )
29873 do while ( x < a(j) )
29947 integer ( kind = 4 ) n
29949 real ( kind = 8 ) fraction(n)
29950 real ( kind = 8 ) x(n)
29952 fraction(1:n) = abs( x(1:n) ) - real( int( abs( x(1:n) ) ), kind = 8 )
29995 integer ( kind = 4 ) n
29997 real ( kind = 8 ) a1(n)
29998 real ( kind = 8 ) a2(n)
29999 integer ( kind = 4 ) i
30006 if ( a2(i) < a1(i) )
then
30009 else if ( a1(i) < a2(i) )
then
30070 integer ( kind = 4 ) n
30072 real ( kind = 8 ) a(n)
30073 integer ( kind = 4 ) i
30074 integer ( kind = 4 ) ifree
30075 real ( kind = 8 ) key
30076 integer ( kind = 4 ) m
30080 do i = n / 2, 1, -1
30103 if ( m + 1 <= n )
then
30108 if ( a(m+1) < a(m) )
then
30118 if ( key <= a(m) )
then
30187 integer ( kind = 4 ) n
30189 real ( kind = 8 ) a(n)
30190 integer ( kind = 4 ) i
30191 integer ( kind = 4 ) ifree
30192 real ( kind = 8 ) key
30193 integer ( kind = 4 ) m
30197 do i = n / 2, 1, -1
30220 if ( m + 1 <= n )
then
30225 if ( a(m) < a(m+1) )
then
30235 if ( a(m) <= key )
then
30299 real ( kind = 8 ) a(*)
30300 integer ( kind = 4 ) n
30301 real ( kind = 8 ) value
30304 write ( *,
'(a)' )
' '
30305 write ( *,
'(a)' )
'R8VEC_HEAP_D_EXTRACT - Fatal error!'
30306 write ( *,
'(a)' )
' The heap is empty.'
30372 real ( kind = 8 ) a(*)
30373 integer ( kind = 4 ) i
30374 integer ( kind = 4 ) n
30375 integer ( kind = 4 ) parent
30376 real ( kind = 8 ) value
30385 if (
value <= a(parent) )
then
30440 integer ( kind = 4 ) n
30442 real ( kind = 8 ) a(n)
30443 real ( kind = 8 ) value
30491 integer ( kind = 4 ) histo_num
30492 integer ( kind = 4 ) n
30494 real ( kind = 8 ) a(n)
30495 real ( kind = 8 ) a_hi
30496 real ( kind = 8 ) a_lo
30497 real ( kind = 8 ) delta
30498 integer ( kind = 4 ) histo_gram(0:histo_num+1)
30499 integer ( kind = 4 ) i
30500 integer ( kind = 4 ) j
30502 histo_gram(0:histo_num+1) = 0
30504 delta = ( a_hi - a_lo ) / real( 2 * histo_num, kind = 8 )
30508 if ( a(i) < a_lo )
then
30510 histo_gram(0) = histo_gram(0) + 1
30512 else if ( a(i) <= a_hi )
then
30515 ( ( a_hi - delta - a(i) ) &
30516 * real( 1, kind = 8 ) &
30517 + ( - delta + a(i) - a_lo ) &
30518 * real( histo_num, kind = 8 ) ) &
30519 / ( a_hi - 2.0d+00 * delta - a_lo ) )
30521 histo_gram(j) = histo_gram(j) + 1
30523 else if ( a_hi < a(i) )
then
30525 histo_gram(histo_num+1) = histo_gram(histo_num+1) + 1
30575 integer ( kind = 4 ) n
30577 real ( kind = 8 ) a(n)
30578 integer ( kind = 4 ) k
30579 real ( kind = 8 ) s
30580 real ( kind = 8 ) v(n)
30584 if ( k < 1 .or. n <= k )
then
30588 s = sqrt( dot_product( a(k:n), a(k:n) ) )
30590 if ( s == 0.0d+00 )
then
30594 v(k) = a(k) + sign( s, a(k) )
30595 v(k+1:n) = a(k+1:n)
30597 v(k:n) = v(k:n) / sqrt( dot_product( v(k:n), v(k:n) ) )
30637 integer ( kind = 4 ) n
30639 integer ( kind = 4 ) i4vec(n)
30640 real ( kind = 8 ) r8vec(n)
30644 real ( i4vec(1:n), kind = 8 ) )
30681 integer ( kind = 4 ) n
30683 real ( kind = 8 ) a(n)
30686 if ( any( a(1:n) < 0.0d+00 .or. 1.0d+00 < a(1:n) ) )
then
30729 integer ( kind = 4 ) n
30731 real ( kind = 8 ) a
30732 real ( kind = 8 ) b
30734 real ( kind = 8 ) x(n)
30736 if ( any( x(1:n) < a .or. b < x(1:n) ) )
then
30780 integer ( kind = 4 ) n
30782 integer ( kind = 4 ) equal
30783 integer ( kind = 4 ) equal1
30784 integer ( kind = 4 ) equal2
30785 integer ( kind = 4 ) get
30786 integer ( kind = 4 ) i
30787 integer ( kind = 4 ) indx(*)
30788 integer ( kind = 4 ) less
30789 integer ( kind = 4 ) more
30790 integer ( kind = 4 ) put
30791 real ( kind = 8 ) x(*)
30792 real ( kind = 8 ) xval
30801 if ( equal == 0 )
then
30809 if ( equal1 <= 1 )
then
30813 if ( x(indx(equal1-1)) /= xval )
then
30817 equal1 = equal1 - 1
30825 if ( n <= equal2 )
then
30829 if ( x(indx(equal2+1)) /= xval )
then
30833 equal2 = equal2 + 1
30843 if ( x(get) /= xval )
then
30850 x(put+1:n) = 0.0d+00
30854 do equal = equal1, equal2
30856 if ( indx(equal) < indx(i) )
then
30857 indx(i) = indx(i) - 1
30864 indx(equal1:n+equal1-equal2-1) = indx(equal2+1:n)
30865 indx(n+equal1-equal2:n) = 0
30920 integer ( kind = 4 ) n
30922 integer ( kind = 4 ) i
30923 integer ( kind = 4 ) indx(n)
30924 integer ( kind = 4 ) indx2(n)
30925 integer ( kind = 4 ) n2
30926 integer ( kind = 4 ) n3
30927 real ( kind = 8 ) x(n)
30928 real ( kind = 8 ) x2(n)
30929 real ( kind = 8 ) x3(n)
30943 if ( x(indx(i)) == x3(n3) )
then
30949 x3(n3) = x(indx(i))
30956 x2(1:n2) = x3(1:n3)
31005 integer ( kind = 4 ) n
31007 integer ( kind = 4 ) equal
31008 integer ( kind = 4 ) i
31009 integer ( kind = 4 ) indx(n)
31010 integer ( kind = 4 ) indx2(n)
31011 integer ( kind = 4 ) j
31012 integer ( kind = 4 ) less
31013 integer ( kind = 4 ) more
31014 integer ( kind = 4 ) n2
31015 real ( kind = 8 ) x(n)
31016 real ( kind = 8 ) x2(n)
31017 real ( kind = 8 ) xval
31025 indx2(1:n2) = indx(1:n2)
31030 if ( equal /= 0 )
then
31032 x2(j:n2-1) = x2(j+1:n2)
31033 indx2(equal:n2-1) = indx2(equal+1:n2)
31035 if ( j < indx2(i) )
then
31036 indx2(i) = indx2(i) - 1
31078 integer ( kind = 4 ) n
31080 integer ( kind = 4 ) equal
31081 integer ( kind = 4 ) indx(*)
31082 integer ( kind = 4 ) less
31083 integer ( kind = 4 ) more
31084 real ( kind = 8 ) x(*)
31085 real ( kind = 8 ) xval
31097 indx(n+1:more+1:-1) = indx(n:more:-1)
31140 integer ( kind = 4 ) n
31142 integer ( kind = 4 ) equal
31143 integer ( kind = 4 ) indx(*)
31144 integer ( kind = 4 ) less
31145 integer ( kind = 4 ) more
31146 real ( kind = 8 ) x(*)
31147 real ( kind = 8 ) xval
31160 if ( equal == 0 )
then
31162 indx(n+1:more+1:-1) = indx(n:more:-1)
31206 integer ( kind = 4 ) n
31208 integer ( kind = 4 ) indx(n)
31209 real ( kind = 8 ) x(n)
31210 real ( kind = 8 ) y(n)
31212 y(1:n) = x(indx(1:n))
31257 integer ( kind = 4 ) n
31259 integer ( kind = 4 ) equal
31260 integer ( kind = 4 ) hi
31261 integer ( kind = 4 ) indx(n)
31262 integer ( kind = 4 ) less
31263 integer ( kind = 4 ) lo
31264 integer ( kind = 4 ) mid
31265 integer ( kind = 4 ) more
31266 real ( kind = 8 ) x(n)
31267 real ( kind = 8 ) xhi
31268 real ( kind = 8 ) xlo
31269 real ( kind = 8 ) xmid
31270 real ( kind = 8 ) xval
31284 if ( xval < xlo )
then
31289 else if ( xval == xlo )
then
31296 if ( xhi < xval )
then
31301 else if ( xval == xhi )
then
31310 if ( lo + 1 == hi )
then
31317 mid = ( lo + hi ) / 2
31318 xmid = x(indx(mid))
31320 if ( xval == xmid )
then
31325 else if ( xval < xmid )
then
31327 else if ( xmid < xval )
then
31370 integer ( kind = 4 ) n
31372 integer ( kind = 4 ) i
31373 integer ( kind = 4 ) indx(n)
31374 integer ( kind = 4 ) n2
31375 real ( kind = 8 ) x(n)
31376 real ( kind = 8 ) y(n)
31386 x(n2+1:n) = 0.0d+00
31426 integer ( kind = 4 ) n
31428 integer ( kind = 4 ) i_hi
31429 integer ( kind = 4 ) i_lo
31430 integer ( kind = 4 ) i1
31431 integer ( kind = 4 ) i2
31432 integer ( kind = 4 ) indx(n)
31433 integer ( kind = 4 ) j1
31434 integer ( kind = 4 ) j2
31435 real ( kind = 8 ) r(n)
31436 real ( kind = 8 ) r_hi
31437 real ( kind = 8 ) r_lo
31441 if ( r(indx(n)) < r_lo )
then
31447 if ( r_hi < r(indx(1)) )
then
31456 if ( r_lo <= r(indx(1)) .and. r(indx(1)) <= r_hi )
then
31468 if ( r_lo <= r(indx(1)) )
then
31480 i1 = ( j1 + j2 - 1 ) / 2
31485 if ( r_lo < r(indx(i1)) )
then
31487 i1 = ( j1 + j2 - 1 ) / 2
31489 else if ( r(indx(i2)) < r_lo )
then
31491 i1 = ( j1 + j2 - 1 ) / 2
31504 if ( r(indx(n)) <= r_hi )
then
31512 i1 = ( j1 + j2 - 1 ) / 2
31517 if ( r_hi < r(indx(i1)) )
then
31519 i1 = ( j1 + j2 - 1 ) / 2
31521 else if ( r(indx(i2)) < r_hi )
then
31523 i1 = ( j1 + j2 - 1 ) / 2
31540 if ( r(indx(i_lo)) < r_lo )
then
31542 if ( n < i_lo )
then
31547 if ( r_hi < r(indx(i_hi)) )
then
31549 if ( i_hi < 1 )
then
31607 integer ( kind = 4 ) n
31609 real ( kind = 8 ) a(*)
31610 integer ( kind = 4 ) i
31611 integer ( kind = 4 ) ifree
31612 integer ( kind = 4 ) indx(n)
31613 integer ( kind = 4 ) key
31614 integer ( kind = 4 ) m
31618 do i = n / 2, 1, -1
31641 if ( m + 1 <= n )
then
31646 if ( a(indx(m)) < a(indx(m+1)) )
then
31656 if ( a(indx(m)) <= a(key) )
then
31660 indx(ifree) = indx(m)
31730 real ( kind = 8 ) a(*)
31731 integer ( kind = 4 ) indx(*)
31732 integer ( kind = 4 ) indx_extract
31733 integer ( kind = 4 ) n
31736 write ( *,
'(a)' )
' '
31737 write ( *,
'(a)' )
'R8VEC_INDEXED_HEAP_D_EXTRACT - Fatal error!'
31738 write ( *,
'(a)' )
' The heap is empty.'
31744 indx_extract = indx(1)
31815 real ( kind = 8 ) a(*)
31816 integer ( kind = 4 ) i
31817 integer ( kind = 4 ) indx(*)
31818 integer ( kind = 4 ) indx_insert
31819 integer ( kind = 4 ) n
31820 integer ( kind = 4 ) parent
31829 if ( a(indx_insert) <= a(indx(parent)) )
then
31833 indx(i) = indx(parent)
31838 indx(i) = indx_insert
31890 integer ( kind = 4 ) n
31892 real ( kind = 8 ) a(*)
31893 integer ( kind = 4 ) indx(n)
31894 integer ( kind = 4 ) indx_max
31930 integer ( kind = 4 ) n
31932 real ( kind = 8 ) a(n)
31933 integer ( kind = 4 ) i
31936 a(i) = real( i - 1, kind = 8 )
31971 integer ( kind = 4 ) n
31973 real ( kind = 8 ) a(n)
31974 integer ( kind = 4 ) i
31977 a(i) = real( i, kind = 8 )
32019 integer ( kind = 4 ) n
32021 real ( kind = 8 ) a(n+1)
32022 integer ( kind = 4 ) i
32023 integer ( kind = 4 ) pos
32024 real ( kind = 8 ) value
32026 if ( pos < 1 .or. n + 1 < pos )
then
32028 write ( *,
'(a)' )
' '
32029 write ( *,
'(a)' )
'R8VEC_INSERT - Fatal error!'
32030 write ( *,
'(a,i8)' )
' Illegal insertion position = ', pos
32035 do i = n + 1, pos + 1, -1
32076 integer ( kind = 4 ) n
32078 integer ( kind = 4 ) i
32079 real ( kind = 8 ) r(n)
32081 real ( kind = 8 ) s(n)
32082 real ( kind = 8 ) t
32083 real ( kind = 8 ) tol
32084 logical ( kind = 4 ) value
32091 tol = epsilon( r(i) ) * abs( r(i) )
32093 if ( tol < abs( r(i) - t ) )
then
32137 integer ( kind = 4 ) n
32139 real ( kind = 8 ) a(n)
32179 integer ( kind = 4 ) n
32181 real ( kind = 8 ) a(n)
32220 integer ( kind = 4 ) n
32222 real ( kind = 8 ) a(n)
32261 integer ( kind = 4 ) n
32263 integer ( kind = 4 ) i
32264 real ( kind = 8 ) x(n)
32265 real ( kind = 8 ) x_first
32266 real ( kind = 8 ) x_last
32270 x(1:n) = ( ( 1.0d+00 - x(1:n) ) * x_first &
32271 + ( 1.0d+00 + x(1:n) ) * x_last ) &
32313 integer ( kind = 4 ) n
32315 real ( kind = 8 ) a
32316 real ( kind = 8 ) b
32317 integer ( kind = 4 ) i
32318 real ( kind = 8 ) x(n)
32322 x(1) = ( a + b ) / 2.0d+00
32327 x(i) = ( real( n - i, kind = 8 ) * a &
32328 + real( i - 1, kind = 8 ) * b ) &
32329 / real( n - 1, kind = 8 )
32373 integer ( kind = 4 ) n
32375 real ( kind = 8 ) a
32376 real ( kind = 8 ) b
32377 integer ( kind = 4 ) i
32378 real ( kind = 8 ) x(n)
32381 x(i) = ( real( n - i + 1, kind = 8 ) * a &
32382 + real( i, kind = 8 ) * b ) &
32383 / real( n + 1, kind = 8 )
32427 integer ( kind = 4 ) n
32429 real ( kind = 8 ) a1(n)
32430 real ( kind = 8 ) a2(n)
32432 integer ( kind = 4 ) i
32438 if ( a1(i) < a2(i) )
then
32441 else if ( a2(i) < a1(i) )
then
32487 integer ( kind = 4 ) mask_num
32488 integer ( kind = 4 ) n
32490 real ( kind = 8 ) a(n)
32491 integer ( kind = 4 ) i
32492 integer ( kind = 4 ) mask(mask_num)
32493 character ( len = * ) title
32495 write ( *,
'(a)' )
' '
32496 write ( *,
'(a)' )
' Masked vector printout:'
32498 write ( *,
'(a)' )
' '
32499 write ( *,
'(a)' ) trim( title )
32500 write ( *,
'(a)' )
' '
32502 write ( *,
'(2x,i8,a,1x,i8,2x,g14.6)' ) i,
':', mask(i), a(mask(i))
32539 integer ( kind = 4 ) n
32541 real ( kind = 8 ) a(n)
32543 real ( kind = 8 ) value
32545 value = maxval( a(1:n) )
32583 integer ( kind = 4 ) n
32585 real ( kind = 8 ) a(n)
32586 integer ( kind = 4 ) i
32587 integer ( kind = 4 ) max_index
32598 if ( abs( a(max_index) ) < abs( a(i) ) )
then
32639 integer ( kind = 4 ) n
32641 real ( kind = 8 ) a(n)
32642 integer ( kind = 4 ) i
32643 integer ( kind = 4 ) max_index
32654 if ( a(max_index) < a(i) )
then
32695 integer ( kind = 4 ) n
32697 real ( kind = 8 ) a(n)
32698 real ( kind = 8 ) mean
32700 mean = sum( a(1:n) ) / real( n, kind = 8 )
32736 integer ( kind = 4 ) n
32738 real ( kind = 8 ) a(n)
32739 real ( kind = 8 ) mean
32741 mean = exp( sum( log( a(1:n) ) ) / real( n, kind = 8 ) )
32777 integer ( kind = 4 ) n
32779 real ( kind = 8 ) a(n)
32780 integer ( kind = 4 ) k
32781 real ( kind = 8 ) median
32832 integer ( kind = 4 ) nx
32833 integer ( kind = 4 ) ny
32835 integer ( kind = 4 ) j
32836 real ( kind = 8 ) xmat(nx,ny)
32837 real ( kind = 8 ) xvec(nx)
32838 real ( kind = 8 ) ymat(nx,ny)
32839 real ( kind = 8 ) yvec(ny)
32842 xmat(1:nx,j) = xvec(1:nx)
32846 ymat(1:nx,j) = yvec(j)
32891 integer ( kind = 4 ) n
32893 real ( kind = 8 ) a
32894 real ( kind = 8 ) b
32895 integer ( kind = 4 ) i
32896 real ( kind = 8 ) x(n)
32899 x(i) = ( real( 2 * n - 2 * i + 1, kind = 8 ) * a &
32900 + real( 2 * i - 1, kind = 8 ) * b ) &
32901 / real( 2 * n, kind = 8 )
32938 integer ( kind = 4 ) n
32940 real ( kind = 8 ) a(n)
32942 real ( kind = 8 ) value
32944 value = minval( a(1:n) )
32982 integer ( kind = 4 ) n
32984 real ( kind = 8 ) a(n)
32985 integer ( kind = 4 ) i
32986 integer ( kind = 4 ) min_index
32997 if ( a(i) < a(min_index) )
then
33038 integer ( kind = 4 ) n
33040 real ( kind = 8 ) a(n)
33041 integer ( kind = 4 ) i
33043 real ( kind = 8 ) value
33045 value = huge(
value )
33048 if ( 0.0d+00 < a(i) )
then
33049 value = min(
value, a(i) )
33145 integer ( kind = 4 ) n
33147 real ( kind = 8 ) a(n)
33148 logical ( kind = 4 ) done
33149 integer ( kind = 4 ) i
33150 integer ( kind = 4 ) positive
33156 if ( 0.0d+00 < a(i) )
then
33164 if ( positive == 0 )
then
33172 a(1:positive) = - a(1:positive)
33210 integer ( kind = 4 ) n
33212 real ( kind = 8 ) a(n)
33249 integer ( kind = 4 ) n
33251 real ( kind = 8 ) a(n)
33253 a(1:n) = nint( real( a(1:n), kind = 8 ) )
33293 integer ( kind = 4 ) n
33295 real ( kind = 8 ) a(n)
33341 integer ( kind = 4 ) n
33344 real ( kind = 8 ) v0(n)
33345 real ( kind = 8 ) v1(n)
33387 integer ( kind = 4 ) n
33389 real ( kind = 8 ) a(n)
33390 integer ( kind = 4 ) i
33392 integer ( kind = 4 ) value
33396 if ( a(i) /= 0.0d+00 )
then
33441 integer ( kind = 4 ) n
33443 real ( kind = 8 ) a(n)
33486 integer ( kind = 4 ) n
33488 real ( kind = 8 ) a(n)
33531 integer ( kind = 4 ) n
33533 real ( kind = 8 ) a(n)
33585 integer ( kind = 4 ) n
33587 real ( kind = 8 ) a(n)
33588 real ( kind = 8 ) p
33591 if ( p <= 0.0d+00 )
then
33593 else if ( p == huge( p ) )
then
33595 else if ( p == 1.0d+00 )
then
33597 else if ( p == 2.0d+00 )
then
33600 r8vec_norm_lp = ( sum( ( abs( a(1:n) ) )**p ) )**( 1.0d+00 / p )
33639 integer ( kind = 4 ) n
33641 real ( kind = 8 ) a(n)
33700 integer ( kind = 4 ) n
33702 integer ( kind = 4 ) m
33703 real ( kind = 8 ) r(n+1)
33704 real ( kind = 8 ), parameter ::
r8_pi = 3.141592653589793d+00
33706 integer ( kind = 4 ) seed
33707 real ( kind = 8 ) x(n)
33708 integer ( kind = 4 ) x_hi_index
33709 integer ( kind = 4 ) x_lo_index
33718 if ( x_hi_index - x_lo_index + 1 == 1 )
then
33722 if ( r(1) == 0.0d+00 )
then
33723 write ( *,
'(a)' )
' '
33724 write ( *,
'(a)' )
'R8VEC_NORMAL_01 - Fatal error!'
33725 write ( *,
'(a)' )
' R8_UNIFORM_01 returned a value of 0.'
33732 sqrt( -2.0d+00 * log( r(1) ) ) * cos( 2.0d+00 *
r8_pi * r(2) )
33736 else if ( mod( x_hi_index - x_lo_index + 1, 2 ) == 0 )
then
33738 m = ( x_hi_index - x_lo_index + 1 ) / 2
33742 x(x_lo_index:x_hi_index-1:2) = &
33743 sqrt( -2.0d+00 * log( r(1:2*m-1:2) ) ) &
33744 * cos( 2.0d+00 *
r8_pi * r(2:2*m:2) )
33746 x(x_lo_index+1:x_hi_index:2) = &
33747 sqrt( -2.0d+00 * log( r(1:2*m-1:2) ) ) &
33748 * sin( 2.0d+00 *
r8_pi * r(2:2*m:2) )
33756 x_hi_index = x_hi_index - 1
33758 m = ( x_hi_index - x_lo_index + 1 ) / 2 + 1
33762 x(x_lo_index:x_hi_index-1:2) = &
33763 sqrt( -2.0d+00 * log( r(1:2*m-3:2) ) ) &
33764 * cos( 2.0d+00 *
r8_pi * r(2:2*m-2:2) )
33766 x(x_lo_index+1:x_hi_index:2) = &
33767 sqrt( -2.0d+00 * log( r(1:2*m-3:2) ) ) &
33768 * sin( 2.0d+00 *
r8_pi * r(2:2*m-2:2) )
33770 x(n) = sqrt( -2.0d+00 * log( r(2*m-1) ) ) &
33771 * cos( 2.0d+00 *
r8_pi * r(2*m) )
33810 integer ( kind = 4 ) n
33812 real ( kind = 8 ) a(n)
33813 real ( kind = 8 ) norm
33815 norm = sqrt( sum( a(1:n)**2 ) )
33817 if ( norm /= 0.0d+00 )
then
33818 a(1:n) = a(1:n) / norm
33855 integer ( kind = 4 ) n
33857 real ( kind = 8 ) a(n)
33858 real ( kind = 8 ) a_sum
33860 a_sum = sum( a(1:n) )
33862 if ( a_sum == 0.0d+00 )
then
33863 write ( *,
'(a)' )
' '
33864 write ( *,
'(a)' )
'R8VEC_NORMALIZE_L1 - Fatal error!'
33865 write ( *,
'(a)' )
' The vector entries sum to 0.'
33869 a(1:n) = a(1:n) / a_sum
33909 integer ( kind = 4 ) n
33912 real ( kind = 8 ) v(n)
33957 integer ( kind = 4 ) n
33960 real ( kind = 8 ) v0(n)
33961 real ( kind = 8 ) v1(n)
34005 integer ( kind = 4 ) n
34007 real ( kind = 8 ) a(n)
34008 integer ( kind = 4 ) i
34009 integer ( kind = 4 ) order
34024 if ( a(1) < a(i) )
then
34034 else if ( a(i) < a(1) )
then
34054 if ( order == 1 )
then
34056 if ( a(i) < a(i-1) )
then
34061 else if ( order == 2 )
then
34063 if ( a(i) < a(i-1) )
then
34066 else if ( a(i) == a(i-1) )
then
34070 else if ( order == 3 )
then
34072 if ( a(i-1) < a(i) )
then
34077 else if ( order == 4 )
then
34079 if ( a(i-1) < a(i) )
then
34082 else if ( a(i) == a(i-1) )
then
34148 integer ( kind = 4 ) n
34150 real ( kind = 8 ) a(n)
34151 integer ( kind = 4 ) i
34152 real ( kind = 8 ) key
34153 integer ( kind = 4 ) l
34154 integer ( kind = 4 ) m
34155 integer ( kind = 4 ) r
34156 real ( kind = 8 ) temp
34159 write ( *,
'(a)' )
' '
34160 write ( *,
'(a)' )
'R8VEC_PART_QUICK_A - Fatal error!'
34161 write ( *,
'(a)' )
' N < 1.'
34163 else if ( n == 1 )
then
34179 if ( key < a(l+1) )
then
34184 else if ( a(l+1) == key )
then
34190 else if ( a(l+1) < key )
then
34266 integer ( kind = 4 ) n
34268 real ( kind = 8 ) a(n)
34269 real ( kind = 8 ) a_temp
34270 integer ( kind = 4 ) ierror
34271 integer ( kind = 4 ) iget
34272 integer ( kind = 4 ) iput
34273 integer ( kind = 4 ) istart
34274 integer ( kind = 4 ) p(n)
34282 if ( p(istart) < 0 )
then
34286 else if ( p(istart) == istart )
then
34288 p(istart) = - p(istart)
34303 p(iput) = - p(iput)
34305 if ( iget < 1 .or. n < iget )
then
34306 write ( *,
'(a)' )
' '
34307 write ( *,
'(a)' )
'R8VEC_PERMUTE - Fatal error!'
34308 write ( *,
'(a)' )
' A permutation index is out of range.'
34309 write ( *,
'(a,i8,a,i8)' )
' P(', iput,
') = ', iget
34313 if ( iget == istart )
then
34369 integer ( kind = 4 ) n
34371 real ( kind = 8 ) a(n)
34372 real ( kind = 8 ) b(n)
34373 integer ( kind = 4 ) i
34374 integer ( kind = 4 ) i4_wrap
34375 integer ( kind = 4 ) ipk
34376 integer ( kind = 4 ) k
34379 ipk = i4_wrap( i + k, 1, n )
34420 integer ( kind = 4 ) n
34422 real ( kind = 8 ) a(n)
34423 integer ( kind = 4 ) p(n)
34424 integer ( kind = 4 ) seed
34476 integer ( kind = 4 ) n
34478 real ( kind = 8 ) a(n)
34479 real ( kind = 8 ) a_dot_p
34480 real ( kind = 8 ) a_normal(n)
34481 real ( kind = 8 ) a_parallel(n)
34482 real ( kind = 8 ) p(n)
34483 real ( kind = 8 ) p_norm
34485 p_norm = sqrt( sum( p(1:n)**2 ) )
34487 if ( p_norm == 0.0d+00 )
then
34488 a_normal(1:n) = a(1:n)
34489 a_parallel(1:n) = 0.0d+00
34493 a_dot_p = dot_product( a(1:n), p(1:n) ) / p_norm
34495 a_parallel(1:n) = a_dot_p * p(1:n) / p_norm
34497 a_normal(1:n) = a(1:n) - a_parallel(1:n)
34534 integer ( kind = 4 ) n
34536 real ( kind = 8 ) a(n)
34575 integer ( kind = 4 ) n
34577 real ( kind = 8 ) a(n)
34578 integer ( kind = 4 ) i
34579 character ( len = * ) title
34581 write ( *,
'(a)' )
' '
34582 write ( *,
'(a)' ) trim( title )
34583 write ( *,
'(a)' )
' '
34586 write ( *,
'(2x,i8,a,1x,g16.8)' ) i,
':', a(i)
34623 integer ( kind = 4 ) n
34625 real ( kind = 8 ) a(n)
34626 integer ( kind = 4 ) i
34627 character ( len = * ) title
34629 write ( *,
'(a)' )
' '
34630 write ( *,
'(a)' ) trim( title )
34631 write ( *,
'(a)' )
' '
34634 write ( *,
'(2x,i8,a,1x,g24.16)' ) i,
':', a(i)
34681 integer ( kind = 4 ) n
34683 real ( kind = 8 ) a(n)
34684 integer ( kind = 4 ) i
34685 integer ( kind = 4 ) max_print
34686 character ( len = * ) title
34688 if ( max_print <= 0 )
then
34696 write ( *,
'(a)' )
' '
34697 write ( *,
'(a)' ) trim( title )
34698 write ( *,
'(a)' )
' '
34700 if ( n <= max_print )
then
34703 write ( *,
'(2x,i8,a,1x,g14.6)' ) i,
':', a(i)
34706 else if ( 3 <= max_print )
then
34708 do i = 1, max_print - 2
34709 write ( *,
'(2x,i8,a,1x,g14.6)' ) i,
':', a(i)
34711 write ( *,
'(a)' )
' ........ ..............'
34713 write ( *,
'(2x,i8,a,1x,g14.6)' ) i,
':', a(i)
34717 do i = 1, max_print - 1
34718 write ( *,
'(2x,i8,a,1x,g14.6)' ) i,
':', a(i)
34721 write ( *,
'(2x,i8,a,1x,g14.6,2x,a)' ) i,
':', a(i),
'...more entries...'
34762 integer ( kind = 4 ) n
34764 real ( kind = 8 ) a(n)
34765 integer ( kind = 4 ) i
34766 integer ( kind = 4 ) i_hi
34767 integer ( kind = 4 ) i_lo
34768 character ( len = * ) title
34770 write ( *,
'(a)' )
' '
34771 write ( *,
'(a)' ) trim( title )
34773 write ( *,
'(a)' )
' '
34774 do i = max( i_lo, 1 ), min( i_hi, n )
34775 write ( *,
'(2x,i8,a,1x,g14.8)' ) i,
':', a(i)
34810 integer ( kind = 4 ) n
34812 real ( kind = 8 ) a(n)
34813 real ( kind = 8 ) amax
34814 real ( kind = 8 ) amin
34815 integer ( kind = 4 ) i
34816 character ( len = 11 ) iform
34817 logical ( kind = 4 ) integ
34818 integer ( kind = 4 ) lmax
34827 if ( a(i) /= real( int( a(i) ), kind = 8 ) )
then
34836 amax = maxval( abs( a(1:n) ) )
34837 amin = minval( abs( a(1:n) ) )
34847 write ( iform,
'( ''(2x,i'', i2, '')'' )' ) lmax + 3
34855 write ( *, iform ) int( a(i) )
34857 write ( *,
'(2x,g14.6)' ) a(i)
34906 integer ( kind = 4 ) n
34908 real ( kind = 8 ) a(n)
34957 integer ( kind = 4 ) n
34959 integer ( kind = 4 ) i
34960 real ( kind = 8 ) x(n)
34961 real ( kind = 8 ) xmax
34962 real ( kind = 8 ) xmin
34963 real ( kind = 8 ) y(n)
34964 real ( kind = 8 ) ymax
34965 real ( kind = 8 ) ymin
34967 ymin = huge( ymin )
34968 ymax = - huge( ymax )
34972 if ( xmin <= x(i) .and. x(i) <= xmax )
then
34974 ymin = min( ymin, y(i) )
34975 ymax = max( ymax, y(i) )
35027 integer ( kind = 4 ) n
35029 real ( kind = 8 ) a(n)
35030 real ( kind = 8 ) amax
35031 real ( kind = 8 ) amin
35033 amax = max( amax, maxval( a(1:n) ) )
35034 amin = min( amin, minval( a(1:n) ) )
35083 integer ( kind = 4 ) n
35085 real ( kind = 8 ) a(n)
35127 integer ( kind = 4 ) n
35129 real ( kind = 8 ) a(n)
35132 r8vec_rms = sqrt( sum( a(1:n)**2 ) / n )
35188 integer ( kind = 4 ) n
35190 real ( kind = 8 ) a(n)
35191 integer ( kind = 4 ) i4_modp
35192 integer ( kind = 4 ) iget
35193 integer ( kind = 4 ) iput
35194 integer ( kind = 4 ) istart
35195 integer ( kind = 4 ) m
35196 integer ( kind = 4 ) mcopy
35197 integer ( kind = 4 ) nset
35198 real ( kind = 8 ) temp
35202 mcopy = i4_modp( m, n )
35204 if ( mcopy == 0 )
then
35213 istart = istart + 1
35215 if ( n < istart )
then
35228 iget = iget - mcopy
35229 if ( iget < 1 )
then
35233 if ( iget == istart )
then
35245 if ( n <= nset )
then
35288 real ( kind = 8 ) v1(3)
35289 real ( kind = 8 ) v2(3)
35290 real ( kind = 8 ) v3(3)
35293 v1(1) * ( v2(2) * v3(3) - v2(3) * v3(2) ) &
35294 + v1(2) * ( v2(3) * v3(1) - v2(1) * v3(3) ) &
35295 + v1(3) * ( v2(1) * v3(2) - v2(2) * v3(1) )
35331 integer ( kind = 4 ) n
35333 real ( kind = 8 ) s
35334 real ( kind = 8 ) x(n)
35336 x(1:n) = s * x(1:n)
35386 integer ( kind = 4 ) n
35388 real ( kind = 8 ) a(n)
35389 real ( kind = 8 ) aval
35390 integer ( kind = 4 ) high
35391 integer ( kind = 4 ) indx
35392 integer ( kind = 4 ) low
35393 integer ( kind = 4 ) mid
35400 do while ( low <= high )
35402 mid = ( low + high ) / 2
35404 if ( a(mid) == aval )
then
35407 else if ( a(mid) < aval )
then
35409 else if ( aval < a(mid) )
then
35450 integer ( kind = 4 ) n
35452 integer ( kind = 4 ) ihi
35453 integer ( kind = 4 ) ilo
35454 integer ( kind = 4 ) shift
35455 real ( kind = 8 ) x(n)
35456 real ( kind = 8 ) y(n)
35462 ilo = max( 1, 1 + shift )
35463 ihi = min( n, n + shift )
35465 x(ilo:ihi) = y(ilo-shift:ihi-shift)
35502 integer ( kind = 4 ) n
35504 integer ( kind = 4 ) i
35505 integer ( kind = 4 ) i4_wrap
35506 integer ( kind = 4 ) j
35507 integer ( kind = 4 ) shift
35508 real ( kind = 8 ) x(n)
35509 real ( kind = 8 ) y(n)
35514 j = i4_wrap( i - shift, 1, n )
35555 integer ( kind = 4 ) n
35557 real ( kind = 8 ) a(n)
35558 integer ( kind = 4 ) i
35559 integer ( kind = 4 ) j
35560 real ( kind = 8 ) t
35564 if ( a(j) < a(i) )
then
35609 integer ( kind = 4 ) n
35611 real ( kind = 8 ) a(n)
35612 integer ( kind = 4 ) i
35613 integer ( kind = 4 ) j
35614 real ( kind = 8 ) t
35618 if ( a(i) < a(j) )
then
35668 integer ( kind = 4 ) n
35670 real ( kind = 8 ) a(n)
35671 integer ( kind = 4 ) n1
35672 real ( kind = 8 ) temp
35693 do n1 = n - 1, 2, -1
35749 integer ( kind = 4 ) n
35751 real ( kind = 8 ) a(n)
35752 integer ( kind = 4 ) n1
35771 do n1 = n - 1, 2, -1
35834 integer ( kind = 4 ) n
35836 real ( kind = 8 ) a(n)
35837 real ( kind = 8 ) aval
35838 integer ( kind = 4 ) i
35839 integer ( kind = 4 ) indx(n)
35840 integer ( kind = 4 ) indxt
35841 integer ( kind = 4 ) ir
35842 integer ( kind = 4 ) j
35843 integer ( kind = 4 ) l
35875 if ( ir == 1 )
then
35885 do while ( j <= ir )
35888 if ( a(indx(j)) < a(indx(j+1)) )
then
35893 if ( aval < a(indx(j)) )
then
35958 integer ( kind = 4 ) n
35960 real ( kind = 8 ) a(n)
35961 real ( kind = 8 ) aval
35962 integer ( kind = 4 ) i
35963 integer ( kind = 4 ) indx(n)
35964 integer ( kind = 4 ) indxt
35965 integer ( kind = 4 ) ir
35966 integer ( kind = 4 ) j
35967 integer ( kind = 4 ) l
35999 if ( ir == 1 )
then
36009 do while ( j <= ir )
36012 if ( a(indx(j+1)) < a(indx(j)) )
then
36017 if ( a(indx(j)) < aval )
then
36088 integer ( kind = 4 ) mask_num
36089 integer ( kind = 4 ) n
36091 real ( kind = 8 ) a(n)
36092 real ( kind = 8 ) aval
36093 integer ( kind = 4 ) i
36094 integer ( kind = 4 ) indx(mask_num)
36095 integer ( kind = 4 ) indxt
36096 integer ( kind = 4 ) ir
36097 integer ( kind = 4 ) j
36098 integer ( kind = 4 ) l
36099 integer ( kind = 4 ) mask(mask_num)
36105 if ( mask_num < 1 )
then
36109 if ( mask_num == 1 )
then
36116 l = mask_num / 2 + 1
36125 aval = a(mask(indxt))
36130 aval = a(mask(indxt))
36134 if ( ir == 1 )
then
36144 do while ( j <= ir )
36147 if ( a(mask(indx(j))) < a(mask(indx(j+1))) )
then
36152 if ( aval < a(mask(indx(j))) )
then
36208 integer ( kind = 4 ) n
36210 real ( kind = 8 ) a(n)
36211 integer ( kind = 4 ) i
36212 integer ( kind = 4 ) j
36213 real ( kind = 8 ) x
36221 do while ( 1 <= j )
36223 if ( a(j) <= x )
then
36279 integer ( kind = 4 ) n
36281 real ( kind = 8 ) a(n)
36282 integer ( kind = 4 ) i
36283 integer ( kind = 4 ) indx(n)
36284 integer ( kind = 4 ) j
36285 real ( kind = 8 ) x
36301 do while ( 1 <= j )
36303 if ( a(indx(j)) <= x )
then
36307 indx(j+1) = indx(j)
36359 integer ( kind = 4 ) n
36361 real ( kind = 8 ) a(n)
36362 integer ( kind = 4 ) i
36363 integer ( kind = 4 ) indx(n)
36364 integer ( kind = 4 ) j
36365 real ( kind = 8 ) x
36381 do while ( 1 <= j )
36383 if ( x <= a(indx(j)) )
then
36387 indx(j+1) = indx(j)
36441 integer ( kind = 4 ),
parameter :: level_max = 30
36442 integer ( kind = 4 ) n
36444 real ( kind = 8 ) a(n)
36445 integer ( kind = 4 ) base
36446 integer ( kind = 4 ) l_segment
36447 integer ( kind = 4 ) level
36448 integer ( kind = 4 ) n_segment
36449 integer ( kind = 4 ) rsave(level_max)
36450 integer ( kind = 4 ) r_segment
36453 write ( *,
'(a)' )
' '
36454 write ( *,
'(a)' )
'R8VEC_SORT_QUICK_A - Fatal error!'
36455 write ( *,
'(a)' )
' N < 1.'
36464 rsave(level) = n + 1
36476 if ( 1 < l_segment )
then
36478 if ( level_max < level )
then
36479 write ( *,
'(a)' )
' '
36480 write ( *,
'(a)' )
'R8VEC_SORT_QUICK_A - Fatal error!'
36481 write ( *,
'(a,i8)' )
' Exceeding recursion maximum of ', level_max
36486 n_segment = l_segment
36487 rsave(level) = r_segment + base - 1
36492 else if ( r_segment < n_segment )
then
36494 n_segment = n_segment + 1 - r_segment
36495 base = base + r_segment - 1
36503 if ( level <= 1 )
then
36507 base = rsave(level)
36508 n_segment = rsave(level-1) - rsave(level)
36511 if ( 0 < n_segment )
then
36555 integer ( kind = 4 ) n
36557 real ( kind = 8 ) a(n)
36558 real ( kind = 8 ) asave
36559 integer ( kind = 4 ) i
36560 integer ( kind = 4 ) ifree
36561 integer ( kind = 4 ) inc
36562 integer ( kind = 4 ) ipow
36563 integer ( kind = 4 ) j
36564 integer ( kind = 4 ) k
36565 integer ( kind = 4 ) maxpow
36576 do while ( 3**maxpow < 2 * n + 1 )
36577 maxpow = maxpow + 1
36580 if ( 1 < maxpow )
then
36581 maxpow = maxpow - 1
36586 do ipow = maxpow, 1, -1
36588 inc = ( 3**ipow - 1 ) / 2
36597 do i = inc+k, n, inc
36609 if ( a(j) <= asave )
then
36673 integer ( kind = 4 ) n
36675 integer ( kind = 4 ) i
36676 integer ( kind = 4 ) indx
36677 integer ( kind = 4 ) isgn
36678 integer ( kind = 4 ) j
36679 real ( kind = 8 ) x(n)
36680 real ( kind = 8 ) y(n)
36695 if ( 0 < indx )
then
36700 else if ( indx < 0 )
then
36702 if ( x(i) <= x(j) )
then
36708 else if ( indx == 0 )
then
36765 integer ( kind = 4 ) na
36766 integer ( kind = 4 ) nb
36768 real ( kind = 8 ) a(na)
36769 real ( kind = 8 ) b(nb)
36770 real ( kind = 8 ) c(na+nb)
36771 real ( kind = 8 ) d(na+nb)
36772 integer ( kind = 4 ) j
36773 integer ( kind = 4 ) ja
36774 integer ( kind = 4 ) jb
36775 integer ( kind = 4 ) na2
36776 integer ( kind = 4 ) nb2
36777 integer ( kind = 4 ) nc
36778 integer ( kind = 4 ) order
36789 if ( order < 0 .or. 2 < order )
then
36790 write ( *,
'(a)' )
' '
36791 write ( *,
'(a)' )
'R8VEC_SORTED_MERGE_A - Fatal error!'
36792 write ( *,
'(a)' )
' The input array A is not ascending sorted!'
36798 if ( order < 0 .or. 2 < order )
then
36799 write ( *,
'(a)' )
' '
36800 write ( *,
'(a)' )
'R8VEC_SORTED_MERGE_A - Fatal error!'
36801 write ( *,
'(a)' )
' The input array B is not ascending sorted!'
36809 if ( na2 <= ja )
then
36813 if ( nc == 0 )
then
36816 else if ( d(nc) < b(jb) )
then
36828 else if ( nb2 <= jb )
then
36832 if ( nc == 0 )
then
36835 else if ( d(nc) < a(ja) )
then
36847 else if ( a(ja+1) <= b(jb+1) )
then
36850 if ( nc == 0 )
then
36853 else if ( d(nc) < a(ja) )
then
36863 if ( nc == 0 )
then
36866 else if ( d(nc) < b(jb) )
then
36912 integer ( kind = 4 ) n
36914 real ( kind = 8 ) a(n)
36916 integer ( kind = 4 ) hi
36917 integer ( kind = 4 ) lo
36918 integer ( kind = 4 ) mid
36919 real ( kind = 8 ) value
36931 if ( a(1) < a(n) )
then
36933 if (
value < a(1) )
then
36936 else if ( a(n) <
value )
then
36946 do while ( lo < hi - 1 )
36948 mid = ( lo + hi ) / 2
36950 if (
value == a(mid) )
then
36953 else if (
value < a(mid) )
then
36963 if ( abs(
value - a(lo) ) < abs(
value - a(hi) ) )
then
36975 if (
value < a(n) )
then
36978 else if ( a(1) <
value )
then
36988 do while ( lo < hi - 1 )
36990 mid = ( lo + hi ) / 2
36992 if (
value == a(mid) )
then
36995 else if (
value < a(mid) )
then
37005 if ( abs(
value - a(lo) ) < abs(
value - a(hi) ) )
then
37049 integer ( kind = 4 ) n
37051 integer ( kind = 4 ) i_hi
37052 integer ( kind = 4 ) i_lo
37053 integer ( kind = 4 ) i1
37054 integer ( kind = 4 ) i2
37055 integer ( kind = 4 ) j1
37056 integer ( kind = 4 ) j2
37057 real ( kind = 8 ) r(n)
37058 real ( kind = 8 ) r_hi
37059 real ( kind = 8 ) r_lo
37063 if ( r(n) < r_lo )
then
37069 if ( r_hi < r(1) )
then
37078 if ( r_lo <= r(1) .and. r(1) <= r_hi )
then
37090 if ( r_lo <= r(1) )
then
37102 i1 = ( j1 + j2 - 1 ) / 2
37107 if ( r_lo < r(i1) )
then
37109 i1 = ( j1 + j2 - 1 ) / 2
37111 else if ( r(i2) < r_lo )
then
37113 i1 = ( j1 + j2 - 1 ) / 2
37126 if ( r(n) <= r_hi )
then
37134 i1 = ( j1 + j2 - 1 ) / 2
37139 if ( r_hi < r(i1) )
then
37141 i1 = ( j1 + j2 - 1 ) / 2
37143 else if ( r(i2) < r_hi )
then
37145 i1 = ( j1 + j2 - 1 ) / 2
37162 if ( r(i_lo) < r_lo )
then
37164 if ( n < i_lo )
then
37169 if ( r_hi < r(i_hi) )
then
37171 if ( i_hi < 1 )
then
37229 integer ( kind = 4 ) n
37231 real ( kind = 8 ) a(n)
37232 integer ( kind = 4 ) hi
37233 integer ( kind = 4 ) i
37234 integer ( kind = 4 ) i_gt
37235 integer ( kind = 4 ) i_lt
37236 integer ( kind = 4 ) lo
37237 integer ( kind = 4 ) mid
37238 real ( kind = 8 ) split
37246 if ( split < a(1) )
then
37252 if ( a(n) < split )
then
37263 if ( lo + 1 == hi )
then
37268 mid = ( lo + hi ) / 2
37270 if ( split <= a(mid) )
then
37279 if ( split < a(i) )
then
37385 integer ( kind = 4 ) x_num
37386 integer ( kind = 4 ) x_unique_num
37388 integer ( kind = 4 ) i
37389 integer ( kind = 4 ) j
37390 real ( kind = 8 ) tol
37391 integer ( kind = 4 ) undx(x_unique_num)
37392 real ( kind = 8 ) x_val(x_num)
37393 integer ( kind = 4 ) xdnu(x_num)
37406 if ( tol < abs( x_val(i) - x_val(undx(j)) ) )
then
37455 integer ( kind = 4 ) n
37457 real ( kind = 8 ) a(n)
37458 integer ( kind = 4 ) i
37459 integer ( kind = 4 ) unique_num
37460 real ( kind = 8 ) tol
37471 if ( tol < abs( a(i) - a(unique_num) ) )
then
37472 unique_num = unique_num + 1
37473 a(unique_num) = a(i)
37518 integer ( kind = 4 ) n
37520 real ( kind = 8 ) a(n)
37521 integer ( kind = 4 ) i
37522 integer ( kind = 4 ) unique_num
37523 real ( kind = 8 ) tol
37534 if ( tol < abs( a(i-1) - a(i) ) )
then
37535 unique_num = unique_num + 1
37589 integer ( kind = 4 ) maxuniq
37590 integer ( kind = 4 ) n
37592 real ( kind = 8 ) a(n)
37593 integer ( kind = 4 ) acount(maxuniq)
37594 real ( kind = 8 ) auniq(maxuniq)
37595 integer ( kind = 4 ) i
37596 integer ( kind = 4 ) unique_num
37597 real ( kind = 8 ) tol
37608 auniq(unique_num) = a(1)
37609 acount(unique_num) = 1
37611 else if ( abs( a(i) - auniq(unique_num) ) <= tol )
then
37613 acount(unique_num) = acount(unique_num) + 1
37615 else if ( unique_num < maxuniq )
then
37617 unique_num = unique_num + 1
37618 auniq(unique_num) = a(i)
37619 acount(unique_num) = 1
37672 integer ( kind = 4 ) n
37674 real ( kind = 8 ) a(n)
37675 integer ( kind = 4 ) i
37676 integer ( kind = 4 ) i1
37677 integer ( kind = 4 ) i2
37678 integer ( kind = 4 ) i3
37679 integer ( kind = 4 ) isplit
37680 integer ( kind = 4 ) j1
37681 integer ( kind = 4 ) j2
37682 integer ( kind = 4 ) j3
37683 real ( kind = 8 ) split
37704 if ( a(i2) <= split )
then
37708 call r8_swap ( a(i2), a(i3-1) )
37758 integer ( kind = 4 ) n
37760 real ( kind = 8 ) a(n)
37761 real ( kind = 8 ) mean
37762 real ( kind = 8 ) std
37770 mean = sum( a(1:n) ) / real( n, kind = 8 )
37772 std = sum( ( a(1:n) - mean )**2 )
37774 std = sqrt( std / real( n - 1, kind = 8 ) )
37815 integer ( kind = 4 ) n
37817 real ( kind = 8 ) fx(n)
37818 real ( kind = 8 ) x(n)
37819 real ( kind = 8 ) x0
37866 integer ( kind = 4 ) m
37867 integer ( kind = 4 ) n
37869 real ( kind = 8 ) a(n)
37870 real ( kind = 8 ) am(m*n)
37871 integer ( kind = 4 ) i
37872 integer ( kind = 4 ) jhi
37873 integer ( kind = 4 ) jlo
37876 jlo = m * ( i - 1 ) + 1
37920 integer ( kind = 4 ) n
37922 real ( kind = 8 ) a(n)
37959 integer ( kind = 4 ) n
37961 real ( kind = 8 ) a1(n)
37962 real ( kind = 8 ) a2(n)
37963 real ( kind = 8 ) a3(n)
38012 integer ( kind = 4 ) n
38014 real ( kind = 8 ) a(n)
38015 integer ( kind = 4 ) i
38016 integer ( kind = 4 ) ihi
38017 integer ( kind = 4 ) ilo
38018 character ( len = * ) title
38019 integer ( kind = 4 ) title_length
38021 title_length = len_trim( title )
38024 if ( ilo == 1 )
then
38025 write ( *,
'(a)', advance =
'NO' ) trim( title )
38027 write ( *,
'(a)', advance =
'NO' ) (
' ', i = 1, title_length )
38029 write ( *,
'(2x)', advance =
'NO' )
38030 ihi = min( ilo + 5 - 1, n )
38031 write ( *,
'(5g14.6)' ) a(ilo:ihi)
38133 integer ( kind = 4 ) x_num
38134 integer ( kind = 4 ) x_unique_num
38136 integer ( kind = 4 ) i
38137 integer ( kind = 4 ) indx(x_num)
38138 integer ( kind = 4 ) j
38139 real ( kind = 8 ) tol
38140 integer ( kind = 4 ) undx(x_unique_num)
38141 real ( kind = 8 ) x_val(x_num)
38142 integer ( kind = 4 ) xdnu(x_num)
38159 if ( tol < abs( x_val(indx(i)) - x_val(undx(j)) ) )
then
38221 integer ( kind = 4 ) n
38223 integer ( kind = 4 ) i
38224 integer ( kind = 4 ),
parameter :: i4_huge = 2147483647
38225 integer ( kind = 4 ) k
38226 integer ( kind = 4 ) seed
38227 real ( kind = 8 ) r(n)
38229 if ( seed == 0 )
then
38230 write ( *,
'(a)' )
' '
38231 write ( *,
'(a)' )
'R8VEC_UNIFORM_01 - Fatal error!'
38232 write ( *,
'(a)' )
' Input value of SEED = 0.'
38240 seed = 16807 * ( seed - k * 127773 ) - k * 2836
38242 if ( seed < 0 )
then
38243 seed = seed + i4_huge
38246 r(i) = real( seed, kind = 8 ) * 4.656612875d-10
38318 integer ( kind = 4 ) n
38320 real ( kind = 8 ) a
38321 real ( kind = 8 ) b
38322 integer ( kind = 4 ) i
38323 integer ( kind = 4 ),
parameter :: i4_huge = 2147483647
38324 integer ( kind = 4 ) k
38325 integer ( kind = 4 ) seed
38326 real ( kind = 8 ) r(n)
38328 if ( seed == 0 )
then
38329 write ( *,
'(a)' )
' '
38330 write ( *,
'(a)' )
'R8VEC_UNIFORM_AB - Fatal error!'
38331 write ( *,
'(a)' )
' Input value of SEED = 0.'
38339 seed = 16807 * ( seed - k * 127773 ) - k * 2836
38341 if ( seed < 0 )
then
38342 seed = seed + i4_huge
38345 r(i) = a + ( b - a ) * real( seed, kind = 8 ) * 4.656612875d-10
38418 integer ( kind = 4 ) n
38420 real ( kind = 8 ) a(n)
38421 real ( kind = 8 ) b(n)
38422 integer ( kind = 4 ) i
38423 integer ( kind = 4 ),
parameter :: i4_huge = 2147483647
38424 integer ( kind = 4 ) k
38425 integer ( kind = 4 ) seed
38426 real ( kind = 8 ) r(n)
38428 if ( seed == 0 )
then
38429 write ( *,
'(a)' )
' '
38430 write ( *,
'(a)' )
'R8VEC_UNIFORM_ABVEC - Fatal error!'
38431 write ( *,
'(a)' )
' Input value of SEED = 0.'
38439 seed = 16807 * ( seed - k * 127773 ) - k * 2836
38441 if ( seed < 0 )
then
38442 seed = seed + i4_huge
38445 r(i) = a(i) + ( b(i) - a(i) ) * real( seed, kind = 8 ) * 4.656612875d-10
38485 integer ( kind = 4 ) m
38487 real ( kind = 8 ) norm
38488 integer ( kind = 4 ) seed
38489 real ( kind = 8 ) w(m)
38497 norm = sqrt( sum( w(1:m)**2 ) )
38501 w(1:m) = w(1:m) / norm
38543 integer ( kind = 4 ) n
38545 real ( kind = 8 ) a(n)
38546 integer ( kind = 4 ) i
38547 integer ( kind = 4 ) j
38548 integer ( kind = 4 ) unique_num
38549 real ( kind = 8 ) tol
38555 unique_num = unique_num + 1
38559 if ( abs( a(i) - a(j) ) <= tol )
then
38560 unique_num = unique_num - 1
38610 integer ( kind = 4 ) n
38612 real ( kind = 8 ) a(n)
38613 integer ( kind = 4 ) i
38614 integer ( kind = 4 ) j
38615 real ( kind = 8 ) tol
38616 integer ( kind = 4 ) unique_index(n)
38617 integer ( kind = 4 ) unique_num
38619 unique_index(1:n) = -1
38624 if ( unique_index(i) == -1 )
then
38626 unique_num = unique_num + 1
38627 unique_index(i) = unique_num
38630 if ( abs( a(i) - a(j) ) <= tol )
then
38631 unique_index(j) = unique_num
38680 integer ( kind = 4 ) n
38682 real ( kind = 8 ) a(n)
38683 real ( kind = 8 ) mean
38684 real ( kind = 8 ) variance
38692 mean = sum( a(1:n) ) / real( n, kind = 8 )
38694 variance = sum( ( a(1:n) - mean )**2 )
38696 variance = variance / real( n - 1, kind = 8 )
38736 real ( kind = 8 ) v(3)
38737 real ( kind = 8 ) v1(3)
38738 real ( kind = 8 ) v2(3)
38739 real ( kind = 8 ) v3(3)
38740 real ( kind = 8 ) v4(3)
38781 integer ( kind = 4 ) n
38783 integer ( kind = 4 ) i
38784 character ( len = * ) output_file
38785 integer ( kind = 4 ) output_unit
38786 real ( kind = 8 ) r(n)
38790 open ( unit = output_unit, file = output_file, status =
'replace' )
38793 write ( output_unit,
'(2x,g16.8)' ) r(i)
38796 close ( unit = output_unit )
38830 integer ( kind = 4 ) n
38832 real ( kind = 8 ) a(n)
38890 integer ( kind = 4 ) n
38892 real ( kind = 8 ) a1(n)
38893 real ( kind = 8 ) a2(n)
38894 integer ( kind = 4 ) i
38895 integer ( kind = 4 ) isgn
38896 integer ( kind = 4 ) j
38900 if ( a1(i) < a1(j) )
then
38904 else if ( a1(i) == a1(j) )
then
38906 if ( a2(i) < a2(j) )
then
38908 else if ( a2(i) < a2(j) )
then
38910 else if ( a2(j) < a2(i) )
then
38914 else if ( a1(j) < a1(i) )
then
38955 integer ( kind = 4 ) n
38957 real ( kind = 8 ) a1(n)
38958 real ( kind = 8 ) a2(n)
38959 integer ( kind = 4 ) i
38960 character ( len = * ) title
38962 write ( *,
'(a)' )
' '
38963 write ( *,
'(a)' ) trim( title )
38964 write ( *,
'(a)' )
' '
38967 write ( *,
'(2x,i4,2x,g14.6,2x,g14.6)' ) i, a1(i), a2(i)
39017 integer ( kind = 4 ) n
39019 integer ( kind = 4 ) i
39020 integer ( kind = 4 ) max_print
39021 character ( len = * ) title
39022 real ( kind = 8 ) x1(n)
39023 real ( kind = 8 ) x2(n)
39025 if ( max_print <= 0 )
then
39033 write ( *,
'(a)' )
' '
39034 write ( *,
'(a)' ) trim( title )
39035 write ( *,
'(a)' )
' '
39037 if ( n <= max_print )
then
39040 write ( *,
'(2x,i8,2x,g14.6,2x,g14.6)' ) i, x1(i), x2(i)
39043 else if ( 3 <= max_print )
then
39045 do i = 1, max_print - 2
39046 write ( *,
'(2x,i8,2x,g14.6,2x,g14.6)' ) i, x1(i), x2(i)
39048 write ( *,
'(a)' )
' ...... .............. ..............'
39050 write ( *,
'(2x,i8,2x,g14.6,2x,g14.6)' ) i, x1(i), x2(i)
39054 do i = 1, max_print - 1
39055 write ( *,
'(2x,i8,2x,g14.6,2x,g14.6)' ) i, x1(i), x2(i)
39058 write ( *,
'(2x,i8,2x,g14.6,2x,g14.6,2x,a)' ) i, x1(i), x2(i), &
39059 '...more entries...'
39099 integer ( kind = 4 ) n
39101 real ( kind = 8 ) a1(n)
39102 real ( kind = 8 ) a2(n)
39103 integer ( kind = 4 ) i
39104 integer ( kind = 4 ) indx
39105 integer ( kind = 4 ) isgn
39106 integer ( kind = 4 ) j
39127 if ( 0 < indx )
then
39129 call r8_swap ( a1(i), a1(j) )
39130 call r8_swap ( a2(i), a2(j) )
39134 else if ( indx < 0 )
then
39138 else if ( indx == 0 )
then
39182 integer ( kind = 4 ) n
39184 real ( kind = 8 ) a1(n)
39185 real ( kind = 8 ) a2(n)
39186 integer ( kind = 4 ) i
39187 integer ( kind = 4 ) indx
39188 integer ( kind = 4 ) isgn
39189 integer ( kind = 4 ) j
39210 if ( 0 < indx )
then
39212 call r8_swap ( a1(i), a1(j) )
39213 call r8_swap ( a2(i), a2(j) )
39218 else if ( indx < 0 )
then
39224 else if ( indx == 0 )
then
39291 integer ( kind = 4 ) n
39293 integer ( kind = 4 ) i
39294 integer ( kind = 4 ) indx(n)
39295 integer ( kind = 4 ) indxt
39296 integer ( kind = 4 ) ir
39297 integer ( kind = 4 ) j
39298 integer ( kind = 4 ) l
39299 real ( kind = 8 ) x(n)
39300 real ( kind = 8 ) xval
39301 real ( kind = 8 ) y(n)
39302 real ( kind = 8 ) yval
39334 if ( ir == 1 )
then
39344 do while ( j <= ir )
39348 if ( x(indx(j)) < x(indx(j+1)) .or. &
39349 ( x(indx(j)) == x(indx(j+1)) .and. y(indx(j)) < y(indx(j+1)) ) )
then
39355 if ( xval < x(indx(j)) .or. &
39356 ( xval == x(indx(j)) .and. yval < y(indx(j)) ) )
then
39415 integer ( kind = 4 ) n
39417 real ( kind = 8 ) a1(n)
39418 real ( kind = 8 ) a2(n)
39419 integer ( kind = 4 ) itest
39420 integer ( kind = 4 ) unique_num
39431 if ( a1(itest) /= a1(unique_num) .or. a2(itest) /= a2(unique_num) )
then
39433 unique_num = unique_num + 1
39435 a1(unique_num) = a1(itest)
39436 a2(unique_num) = a2(itest)
39487 integer ( kind = 4 ) n
39489 real ( kind = 8 ) a1(n)
39490 real ( kind = 8 ) a2(n)
39491 integer ( kind = 4 ) indx(n)
39492 integer ( kind = 4 ) itest
39493 integer ( kind = 4 ) unique_num
39505 if ( a1(itest-1) /= a1(itest) .or. a2(itest-1) /= a2(itest) )
then
39507 unique_num = unique_num + 1
39509 indx(unique_num) = itest
39515 indx(unique_num+1:n) = 0
39554 integer ( kind = 4 ) n
39556 real ( kind = 8 ) a(n)
39557 real ( kind = 8 ) b(n)
39558 integer ( kind = 4 ) i
39559 real ( kind = 8 ) sum_max
39560 integer ( kind = 4 ) sum_max_index
39569 sum_max = a(1) + b(1)
39572 if ( sum_max < a(i) + b(i) )
then
39573 sum_max = a(i) + b(i)
39615 integer ( kind = 4 ) n
39617 real ( kind = 8 ) a1(n)
39618 real ( kind = 8 ) a2(n)
39619 real ( kind = 8 ) a3(n)
39620 integer ( kind = 4 ) i
39621 character ( len = * ) title
39623 write ( *,
'(a)' )
' '
39624 write ( *,
'(a)' ) trim( title )
39625 write ( *,
'(a)' )
' '
39628 write ( *,
'(i8,3g14.6)' ) i, a1(i), a2(i), a3(i)
39661 integer ( kind = 4 ) n
39663 real ( kind = 8 ) c(0:n)
39664 integer ( kind = 4 ) i
39665 integer ( kind = 4 ) j
39666 real ( kind = 8 ) x(n)
39678 do i = 1, n + 1 - j
39679 c(n-i) = c(n-i) - x(n+1-i-j+1) * c(n-i+1)
39750 integer ( kind = 4 ) i
39751 integer ( kind = 4 ),
save :: i_save = 0
39752 integer ( kind = 4 ) indx
39753 integer ( kind = 4 ) isgn
39754 integer ( kind = 4 ) j
39755 integer ( kind = 4 ),
save :: j_save = 0
39756 integer ( kind = 4 ),
save :: k = 0
39757 integer ( kind = 4 ),
save :: k1 = 0
39758 integer ( kind = 4 ) n
39759 integer ( kind = 4 ),
save :: n1 = 0
39763 if ( indx == 0 )
then
39773 else if ( indx < 0 )
then
39775 if ( indx == -2 )
then
39777 if ( isgn < 0 )
then
39778 i_save = i_save + 1
39790 if ( 0 < isgn )
then
39799 if ( n1 == 1 )
then
39821 else if ( indx == 1 )
then
39831 if ( i_save == n1 )
then
39838 else if ( i_save <= n1 )
then
39839 j_save = i_save + 1
39855 if ( n1 == 1 )
then
39900 character ( len = 8 ) ampm
39901 integer ( kind = 4 ) d
39902 integer ( kind = 4 ) h
39903 integer ( kind = 4 ) m
39904 integer ( kind = 4 ) mm
39905 character ( len = 9 ),
parameter,
dimension(12) :: month = (/ &
39906 'January ',
'February ',
'March ',
'April ', &
39907 'May ',
'June ',
'July ',
'August ', &
39908 'September',
'October ',
'November ',
'December ' /)
39909 integer ( kind = 4 ) n
39910 integer ( kind = 4 ) s
39911 integer ( kind = 4 ) values(8)
39912 integer ( kind = 4 ) y
39914 call date_and_time ( values = values )
39926 else if ( h == 12 )
then
39927 if ( n == 0 .and. s == 0 )
then
39936 else if ( h == 12 )
then
39937 if ( n == 0 .and. s == 0 )
then
39945 write ( *,
'(i2,1x,a,1x,i4,2x,i2,a1,i2.2,a1,i2.2,a1,i3.3,1x,a)' ) &
39946 d, trim( month(m) ), y, h,
':', n,
':', s,
'.', mm, trim( ampm )
subroutine r8mat_mtm(n1, n2, n3, a, b, c)
real(kind=8) function r8_sech(x)
subroutine r8col_sorted_unique(m, n, a, unique_num)
integer(kind=4) function i4_modp(i, j)
subroutine r8mat_power(n, a, npow, b)
subroutine r8mat_givens_post(n, a, row, col, g)
subroutine r8vec2_print(n, a1, a2, title)
real(kind=8) function r8_cscd(degrees)
subroutine r8vec_copy(n, a1, a2)
subroutine r8vec_01_to_ab(n, a, amax, amin)
subroutine r8_swap3(x, y, z)
subroutine r8vec_sort_bubble_d(n, a)
subroutine r8poly4_root(a, b, c, d, e, r1, r2, r3, r4)
subroutine r8col_unique_index(m, n, a, unique_index)
real(kind=8) function r8_pi_sqrt()
subroutine r8mat_diag_set_vector(n, a, v)
real(kind=8) function r8_cas(x)
character function r8_sign_char(x)
real(kind=8) function r8_ceiling(r)
real(kind=8) function r8mat_maxcol_minrow(m, n, a)
subroutine r8mat_minvm(n1, n2, a, b, c)
logical(kind=4) function r82_ne(a1, a2)
subroutine r82vec_print(n, a, title)
real(kind=8) function r8_log_10(x)
subroutine r8vec_amin(n, a, amin)
subroutine sort_heap_external(n, indx, i, j, isgn)
real(kind=8) function r8_chop(place, x)
subroutine r8vec_mask_print(n, a, mask_num, mask, title)
subroutine r8mat_cholesky_factor(n, a, c, flag)
subroutine r8col_max_index(m, n, a, imax)
subroutine r8col_sortr_a(m, n, a, key)
subroutine r8row_mean(m, n, a, mean)
subroutine r8vec2_sum_max_index(n, a, b, sum_max_index)
real(kind=8) function r8_mop(i)
real(kind=8) function r8mat_rms(m, n, a)
subroutine r8vec_sort_heap_mask_a(n, a, mask_num, mask, indx)
logical(kind=4) function r82_le(a1, a2)
subroutine r8mat_l_solve(n, a, b, x)
subroutine r8vec_heap_d_insert(n, a, value)
real(kind=8) function r8vec_norm_l1(n, a)
real(kind=8) function r8vec_diff_norm_li(n, a, b)
real(kind=8) function r8_diff(x, y, n)
subroutine r8vec_swap(n, a1, a2)
subroutine r8mat_ref(m, n, a)
subroutine r8mat_cholesky_factor_upper(n, a, c, flag)
subroutine r8mat_diag_set_scalar(n, a, s)
subroutine r8vec_linspace(n, a, b, x)
subroutine r8mat_house_form(n, v, h)
subroutine r8poly_degree(na, a, degree)
subroutine r8vec_index_search(n, x, indx, xval, less, equal, more)
subroutine r8poly_value(m, c, n, x, p)
subroutine r8r8r8vec_index_insert_unique(n_max, n, x, y, z, indx, xval, yval, zval, ival, ierror)
subroutine r8mat_symm_eigen(n, x, q, a)
real(kind=8) function r8mat_det_5d(a)
subroutine r8mat_nint(m, n, a)
subroutine r8vec_index_sort_unique(n, x, indx, n2)
subroutine r8vec_indexed_heap_d_max(n, a, indx, indx_max)
subroutine r8mat_mmt(n1, n2, n3, a, b, c)
subroutine r8col_tol_undex(m, n, a, unique_num, tol, undx, xdnu)
real(kind=8) function r8_walsh_1d(x, digit)
subroutine r8col_unique_count(m, n, a, unique_num)
subroutine r82poly2_type(a, b, c, d, e, f, type)
subroutine r8col_sort_heap_a(m, n, a)
subroutine r8vec_print_part(n, a, max_print, title)
subroutine r8vec_indicator1(n, a)
real(kind=8) function r83_norm(x, y, z)
real(kind=8) function r8mat_norm_li(m, n, a)
real(kind=8) function r8_pythag(a, b)
subroutine r8vec_even_select(n, xlo, xhi, ival, xval)
subroutine r8row_sort_quick_a(m, n, a)
subroutine r8vec_search_binary_a(n, a, aval, indx)
logical(kind=4) function r8vec_any_negative(n, a)
subroutine r8mat_u_inverse(n, a, b)
real(kind=8) function r8vec_norm_squared(n, a)
subroutine r8vec_cross_product_3d(v1, v2, v3)
real(kind=8) function r8mat_min(m, n, a)
subroutine r8mat_house_pre(n, a, row, col, h)
subroutine r8row_reverse(m, n, a)
subroutine r8r8r8vec_index_search(n, x, y, z, indx, xval, yval, zval, less, equal, more)
real(kind=8) function r8_tiny()
integer(kind=4) function r8_nint(x)
subroutine r8poly_lagrange_val(npol, ipol, xpol, xval, pval, dpdx)
subroutine r8mat_min_index(m, n, a, i, j)
subroutine r82poly2_type_print(type)
subroutine r8vec_cum(n, a, a_cum)
real(kind=8) function r8_exp(x)
subroutine r8vec_index_order(n, x, indx)
real(kind=8) function r8mat_vtmv(m, n, x, a, y)
subroutine r8vec_indexed_heap_d_extract(n, a, indx, indx_extract)
real(kind=8) function r8_fall(x, n)
real(kind=8) function r8vec_product(n, a)
subroutine r8mat_mtv(m, n, a, x, y)
subroutine r8vec_unique_count(n, a, tol, unique_num)
subroutine r8mat_copy(m, n, a, b)
subroutine r8vec_cheby2space(n, a, b, x)
subroutine r8vec_index_delete_all(n, x, indx, xval)
subroutine r8r8vec_index_insert_unique(n_max, n, x, y, indx, xval, yval, ival, ierror)
real(kind=8) function r8_normal_ab(a, b, seed)
subroutine r8mat_flip_rows(m, n, a, b)
subroutine r8vec_blend(n, t1, x1, t2, x2, x)
subroutine r8vec_convolution(m, x, n, y, z)
real(kind=8) function r8_factorial2(n)
real(kind=8) function r8_divide_i4(i, j)
subroutine r8row_to_r8vec(m, n, a, x)
subroutine r83_normalize(x, y, z)
subroutine r8plu_det(n, pivot, lu, det)
real(kind=8) function r8_asin(s)
subroutine r8vec_uniform_ab(n, a, b, seed, r)
subroutine r8poly2_val2(dim_num, ndata, tdata, ydata, left, tval, yval)
subroutine r8col_to_r8vec(m, n, a, x)
subroutine r8vec_bracket3(n, t, tval, left)
subroutine r8vec_sorted_split(n, a, split, i_lt, i_gt)
real(kind=8) function r8mat_det_4d(a)
subroutine r8vec_cheby1space(n, a, b, x)
subroutine r8col_max(m, n, a, amax)
subroutine r8vec2_sort_d(n, a1, a2)
subroutine r8mat_house_hxa(n, a, v, ha)
subroutine r8mat_transpose_in_place(n, a)
real(kind=8) function r8_power(r, p)
subroutine r8row_variance(m, n, a, variance)
subroutine r82_swap(x, y)
real(kind=8) function r8_sqrt_i4(i)
subroutine r8col_sorted_tol_undex(m, n, a, unique_num, tol, undx, xdnu)
logical(kind=4) function r8vec_any_nonzero(n, a)
logical(kind=4) function r8vec_distinct(n, a)
subroutine r8mat_border_add(m, n, table, table2)
subroutine r8vec2_compare(n, a1, a2, i, j, isgn)
character function r8mat_plot_symbol(r)
subroutine r8vec_permute_uniform(n, a, seed)
subroutine r8mat_cholesky_inverse(n, a)
real(kind=8) function r8mat_diff_frobenius(m, n, a1, a2)
subroutine r82_cheby(n, alo, ahi, a)
subroutine r8col_mean(m, n, a, mean)
subroutine r82vec_max(n, a, amax)
subroutine r8vec_sorted_undex(x_num, x_val, x_unique_num, tol, undx, xdnu)
real(kind=8) function r8vec_norm_li(n, a)
subroutine r8vec_mean_geometric(n, a, mean)
subroutine r8mat_cholesky_solve_upper(n, r, b, x)
subroutine r8vec2_print_some(n, x1, x2, max_print, title)
subroutine r83vec_normalize(n, x)
subroutine r8mat_flip_cols(m, n, a, b)
real(kind=8) function r8mat_norm_eis(m, n, a)
subroutine r8vec2_sorted_unique(n, a1, a2, unique_num)
subroutine r8vec_normal_01(n, seed, x)
subroutine r8mat_det(n, a, det)
subroutine perm_uniform(n, seed, p)
subroutine r8vec_range(n, x, xmin, xmax, y, ymin, ymax)
subroutine r8vec_scale(s, n, x)
subroutine r8row_swap(m, n, a, i1, i2)
subroutine r8vec_indexed_heap_d(n, a, indx)
subroutine r8col_tol_unique_count(m, n, a, tol, unique_num)
subroutine r8poly_lagrange_factor(npol, xpol, xval, wval, dwdx)
real(kind=8) function r8_gamma_log(x)
real(kind=8) function r8vec_min_pos(n, a)
subroutine r8_roundb(base, nplace, x, xround)
real(kind=8) function r8_radians(degrees)
subroutine r8mat_house_axh(n, a, v, ah)
real(kind=8) function r8_cube_root(x)
real(kind=8) function r8_fractional(x)
integer(kind=4) function i4_log_10(i)
real(kind=8) function r8_round(x)
subroutine r83vec_print_part(n, a, max_print, title)
subroutine r8vec2_sorted_unique_index(n, a1, a2, unique_num, indx)
real(kind=8) function r8_epsilon_compute()
subroutine r8vec_linspace2(n, a, b, x)
subroutine r8row_sort_heap_a(m, n, a)
subroutine r8mat_power_method(n, a, r, v)
real(kind=8) function r8vec_min(n, a)
subroutine r8vec_sorted_unique(n, a, tol, unique_num)
logical(kind=4) function r8_sign_opposite(r1, r2)
real(kind=8) function r8_csc(theta)
subroutine r8vec_sorted_unique_count(n, a, tol, unique_num)
subroutine r8row_sum(m, n, a, rowsum)
subroutine r8vec_frac(n, a, k, frac)
real(kind=8) function r8vec_max(n, a)
real(kind=8) function r8vec_dot_product_affine(n, v0, v1, v2)
subroutine r8poly2_root(a, b, c, r1, r2)
subroutine r8vec_sorted_range(n, r, r_lo, r_hi, i_lo, i_hi)
real(kind=8) function r8mat_max(m, n, a)
logical(kind=4) function r8_insignificant(r, s)
subroutine r8vec_polarize(n, a, p, a_normal, a_parallel)
subroutine r8vec_normalize_l1(n, a)
subroutine r8vec_shift(shift, n, x)
subroutine r8poly_lagrange_1(npol, xpol, xval, dwdx)
subroutine r8col_sort_heap_index_a(m, n, a, indx)
subroutine r8vec_uniform_unit(m, seed, w)
subroutine r8block_expand_linear(l, m, n, x, lfat, mfat, nfat, xfat)
subroutine r8vec_ab_to_cd(n, a, bmin, bmax, b)
subroutine r8mat_solve2(n, a, b, x, ierror)
subroutine r8_print(r, title)
real(kind=8) function r8_factorial(n)
subroutine r8mat_hess(fx, n, x, h)
subroutine i4vec_indicator0(n, a)
subroutine r8mat_transpose_print_some(m, n, a, ilo, jlo, ihi, jhi, title)
real(kind=8) function r8_sign(x)
subroutine r8vec_index_insert(n, x, indx, xval)
subroutine r8mat_cholesky_solve(n, l, b, x)
real(kind=8) function r8vec_diff_dot_product(n, u1, v1, u2, v2)
real(kind=8) function r8mat_norm_fro_affine(m, n, a1, a2)
subroutine r8vec_uniform_01(n, seed, r)
logical(kind=4) function r8vec_insignificant(n, r, s)
subroutine r8col_sorted_tol_unique(m, n, a, tol, unique_num)
real(kind=8) function r82_dist_l2(a1, a2)
real(kind=8) function r8vec_distance(dim_num, v1, v2)
subroutine r8mat_jac(m, n, eps, fx, x, fprime)
real(kind=8) function r8mat_maxrow_mincol(m, n, a)
subroutine r8_to_i4(xmin, xmax, x, ixmin, ixmax, ix)
subroutine r82vec_order_type(n, a, order)
subroutine r8mat_transpose(m, n, a, at)
subroutine r8col_sum(m, n, a, colsum)
subroutine r8mat_solve(n, rhs_num, a, info)
subroutine r8mat_uniform_abvec(m, n, a, b, seed, r)
logical(kind=4) function r8vec_is_nonnegative(n, a)
subroutine r8mat_inverse_3d(a, b, det)
subroutine r8vec_mirror_next(n, a, done)
real(kind=8) function r8mat_mean(m, n, a)
real(kind=8) function r8_max(x, y)
subroutine r83vec_min(n, a, amin)
subroutine r8vec_heap_d(n, a)
subroutine r8mat_sub(m, n, a, b, c)
subroutine r8poly3_root(a, b, c, d, r1, r2, r3)
real(kind=8) function r8vec_diff_norm_l2(n, a, b)
subroutine r8vec_heap_d_max(n, a, value)
subroutine r8vec_order_type(n, a, order)
logical(kind=4) function r8vec_positive_strict(n, a)
real(kind=8) function r8_secd(degrees)
subroutine r8mat_inverse_4d(a, b, det)
subroutine r8vec_median(n, a, median)
subroutine r8mat_lu(m, n, a, l, p, u)
logical(kind=4) function r8_sign_match_strict(r1, r2)
subroutine r8poly_value_2d(m, c, n, x, y, p)
subroutine r8vec_shift_circular(shift, n, x)
subroutine r83vec_max(n, a, amax)
real(kind=8) function r8_normal_01(seed)
subroutine r8vec_split(n, a, split, isplit)
logical(kind=4) function r8mat_insignificant(m, n, r, s)
subroutine r8vec_circular_variance(n, x, circular_variance)
integer(kind=4) function r8_round_i4(x)
subroutine r8row_max(m, n, a, amax)
logical(kind=4) function r8vec_is_zero(n, a)
real(kind=8) function r8mat_norm_l2(m, n, a)
real(kind=8) function r8vec_entropy(n, x)
real(kind=8) function r8mat_norm_fro(m, n, a)
subroutine r8mat_givens_pre(n, a, row, col, g)
subroutine r8vec_insert(n, a, pos, value)
subroutine r8vec_transpose_print(n, a, title)
subroutine r8col_sorted_unique_count(m, n, a, unique_num)
subroutine r8col_reverse(m, n, a)
subroutine r8_digit(x, idigit, digit)
real(kind=8) function r8vec_norm_l2(n, a)
subroutine r8mat_is_identity(n, a, error_frobenius)
subroutine r8vec_cum0(n, a, a_cum)
subroutine r8vec_uniform_abvec(n, a, b, seed, r)
subroutine r8col_permute(m, n, p, a)
subroutine r8mat_vand2(n, x, a)
subroutine r8_to_r8_discrete(r, rmin, rmax, nr, rd)
subroutine r8col_find(m, n, a, x, col)
subroutine r8vec_sort_insert_index_a(n, a, indx)
logical(kind=4) function r8vec_ascends_strictly(n, x)
real(kind=8) function r8vec_sum(n, a)
subroutine r8vec2_sort_heap_index_a(n, x, y, indx)
subroutine r8mat_normal_01(m, n, seed, r)
real(kind=8) function r8vec_cross_product_affine_2d(v0, v1, v2)
subroutine r8mat_u1_inverse(n, a, b)
subroutine r8slmat_print(m, n, a, title)
subroutine r8vec_index_insert_unique(n, x, indx, xval)
real(kind=8) function r8mat_norm_l1(m, n, a)
subroutine r8row_min(m, n, a, amin)
subroutine r8vec_first_index(n, a, tol, first_index)
subroutine r8row_sort_heap_index_a(m, n, a, indx)
subroutine r8mat_orth_uniform(n, seed, a)
real(kind=8) function r8vec_diff_norm_squared(n, a, b)
subroutine r8vec_even2(maxval, nfill, nold, xold, nval, xval)
subroutine r8_round2(nplace, x, xround)
subroutine r8mat_diagonal(n, diag, a)
subroutine r8vec_unique_index(n, a, tol, unique_index)
subroutine r8mat_row_set(i, r, m, n, a)
subroutine r8mat_print2(m, n, a)
real(kind=8) function r8_abs(x)
real(kind=8) function r8_cotd(degrees)
subroutine r8mat_fss(n, a, nb, b, info)
real(kind=8) function r8vec_cross_product_2d(v1, v2)
subroutine r8row_sorted_unique_count(m, n, a, unique_num)
subroutine r8r8_print(a1, a2, title)
integer(kind=4) function r8vec_sorted_nearest(n, a, value)
subroutine r8vec_std(n, a, std)
subroutine r8vec_rotate(n, a, m)
subroutine r8vec_min_index(n, a, min_index)
subroutine r8vec_sort_heap_d(n, a)
subroutine r8col_compare(m, n, a, i, j, value)
subroutine r8mat_is_nonnegative(m, n, a, ival)
real(kind=8) function r8vec_diff_norm(n, a, b)
real(kind=8) function r8_pi()
real(kind=8) function r8mat_det_3d(a)
subroutine r8int_to_i4int(rmin, rmax, r, imin, imax, i)
subroutine r8poly2_val(x1, y1, x2, y2, x3, y3, x, y, yp, ypp)
real(kind=8) function r8mat_sum(m, n, a)
subroutine r8col_sorted_tol_unique_count(m, n, a, tol, unique_num)
subroutine r8col_undex(m, n, a, unique_num, undx, xdnu)
subroutine r8col_duplicates(m, n, n_unique, seed, a)
subroutine r82vec_part_quick_a(n, a, l, r)
subroutine r8vec_midspace(n, a, b, x)
subroutine r8vec_expand_linear2(n, x, before, fat, after, xfat)
subroutine i4vec_print(n, a, title)
real(kind=8) function r8vec_norm(n, a)
real(kind=8) function r8_big()
subroutine r8col_uniform_abvec(m, n, a, b, seed, r)
real(kind=8) function r8_epsilon()
real(kind=8) function r8_wrap(r, rlo, rhi)
logical(kind=4) function r8vec_in_01(n, a)
subroutine r8mat_house_post(n, a, row, col, h)
subroutine r8vec_bracket2(n, x, xval, start, left, right)
subroutine r8mat_rref(m, n, a)
subroutine r82vec_sort_heap_index_a(n, a, indx)
real(kind=8) function r8_log_2(x)
real(kind=8) function r82_norm(a)
subroutine r8vec_chebyspace(n, a, b, x)
real(kind=8) function r8_hypot(x, y)
subroutine r8vec_house_column(n, a, k, v)
real(kind=8) function r8vec_scalar_triple_product(v1, v2, v3)
subroutine r8mat_to_r8cmat(lda, m, n, a1, a2)
subroutine r8vec_zero(n, a)
subroutine r8mat_expand_linear(m, n, x, mfat, nfat, xfat)
subroutine r8vec_mean(n, a, mean)
subroutine gamma_values(n_data, x, fx)
subroutine r8vec_correlation(n, x, y, correlation)
subroutine r8col_sort_quick_a(m, n, a)
subroutine r82_uniform_ab(b, c, seed, a)
subroutine r8vec_max_abs_index(n, a, max_index)
subroutine r8mat_transpose_print(m, n, a, title)
subroutine r8mat_to_r8plu(n, a, pivot, lu, info)
subroutine r8mat_poly_char(n, a, p)
subroutine r8vec_variance(n, a, variance)
subroutine r8mat_border_cut(m, n, table, table2)
subroutine r8cmat_print(lda, m, n, a, title)
subroutine r8vec_histogram(n, a, a_lo, a_hi, histo_num, histo_gram)
subroutine r8mat_diag_add_vector(n, a, v)
logical(kind=4) function r8mat_in_01(m, n, a)
subroutine i4int_to_r8int(imin, imax, i, rmin, rmax, r)
subroutine r8mat_lt_solve(n, a, b, x)
subroutine r8vec_permute(n, p, a)
real(kind=8) function r8_floor(r)
real(kind=8) function r8_min(x, y)
subroutine r8mat_mv(m, n, a, x, y)
subroutine r8mat_uniform_ab(m, n, a, b, seed, r)
logical(kind=4) function r82_eq(a1, a2)
subroutine r8vec_cross_product_affine_3d(v0, v1, v2, v3)
subroutine r8vec_expand_linear(n, x, fat, xfat)
subroutine r8mat_u_solve(n, a, b, x)
subroutine r8poly_deriv(n, c, p, cp)
subroutine r8vec_indicator0(n, a)
subroutine r8vec_reverse(n, a)
subroutine r8r8vec_index_search(n, x, y, indx, xval, yval, less, equal, more)
subroutine r8mat_solve_2d(a, b, det, x)
real(kind=8) function r8_huge()
subroutine r8row_compare(m, n, a, i, j, value)
subroutine r8mat_indicator(m, n, table)
subroutine r8vec_bin(n, x, bin_num, bin_min, bin_max, bin, bin_limit)
subroutine r8poly_lagrange_2(npol, xpol, xval, dw2dx2)
subroutine r8col_swap(m, n, a, j1, j2)
subroutine r8vec_sort_heap_index_d(n, a, indx)
subroutine r83_print(x, y, z, title)
logical(kind=4) function r8vec_lt(n, a1, a2)
complex(kind=8) function r8_csqrt(x)
real(kind=8) function r8vec_norm_affine(n, v0, v1)
subroutine r8poly2_ex2(x1, y1, x2, y2, x3, y3, x, y, a, b, c, ierror)
subroutine r8_power_fast(r, p, rp, mults)
subroutine r8mat_is_symmetric(m, n, a, error_frobenius)
subroutine r8col_variance(m, n, a, variance)
real(kind=8) function r8vec_covar(n, x, y)
subroutine r8vec_indexed_heap_d_insert(n, a, indx, indx_insert)
real(kind=8) function r8_acos(c)
subroutine r8mat_diag_add_scalar(n, a, s)
subroutine r8vec_mesh_2d(nx, ny, xvec, yvec, xmat, ymat)
subroutine r8vec_even2_select(n, xlo, xhi, ival, xval)
logical(kind=4) function r8vec_negative_strict(n, a)
logical(kind=4) function r8vec_is_int(n, a)
subroutine r8mat_inverse_2d(a, b, det)
subroutine r82poly2_print(a, b, c, d, e, f)
subroutine r8vec_bracket6(nd, xd, ni, xi, b)
subroutine r8vec3_print(n, a1, a2, a3, title)
logical(kind=4) function r82_gt(a1, a2)
real(kind=8) function r8_aint(x)
subroutine r8vec_print_16(n, a, title)
subroutine r8vec_concatenate(n1, a, n2, b, c)
subroutine r82_print(a, title)
subroutine r8plu_inverse(n, pivot, lu, a_inverse)
subroutine r8mat_solve_3d(a, b, det, x)
subroutine r8poly_lagrange_0(npol, xpol, xval, wval)
subroutine r8mat_ut_solve(n, a, b, x)
subroutine r8vec_convolution_circ(n, x, y, z)
subroutine r82vec_min(n, a, amin)
subroutine get_unit(iunit)
subroutine r8poly_order(na, a, order)
subroutine r8vec_print2(n, a)
real(kind=8) function r8_add(x, y)
subroutine r8vec_range_2(n, a, amin, amax)
real(kind=8) function r8_agm(a, b)
subroutine r8_to_dhms(r, d, h, m, s)
subroutine r8_unswap3(x, y, z)
subroutine perm_check0(n, p)
real(kind=8) function r8_choose(n, k)
subroutine r8vec_even(n, alo, ahi, a)
subroutine r8vec_nint(n, a)
real(kind=8) function r8_tand(degrees)
subroutine r8poly2_rroot(a, b, c, r1, r2)
subroutine r8vec_sorted_merge_a(na, a, nb, b, nc, c)
real(kind=8) function r8vec_norm_lp(n, a, p)
subroutine r8mat_uniform_01(m, n, seed, r)
subroutine r8cmat_to_r8mat(lda, m, n, a1, a2)
subroutine r8vec2_sort_a(n, a1, a2)
subroutine r8col_normalize_li(m, n, a)
subroutine r8col_part_quick_a(m, n, a, l, r)
subroutine r8vec_index_sorted_range(n, r, indx, r_lo, r_hi, i_lo, i_hi)
subroutine r8vec_vector_triple_product(v1, v2, v3, v)
subroutine r8vec_amin_index(n, a, amin_index)
subroutine r8vec_sort_heap_a(n, a)
subroutine r8vec_sort2_a(n, x, y)
subroutine r8vec_heap_d_extract(n, a, value)
subroutine r8mat_l_inverse(n, a, b)
real(kind=8) function r8mat_amax(m, n, a)
subroutine r83_swap(x, y)
subroutine roots_to_r8poly(n, x, c)
subroutine r8vec_index_delete_one(n, x, indx, xval, n2, x2, indx2)
subroutine r8plu_mul(n, pivot, lu, x, b)
real(kind=8) function r8_gamma(x)
subroutine r84_normalize(v)
subroutine r8mat_diag_get_vector(n, a, v)
real(kind=8) function r8mat_det_2d(a)
subroutine r8vec_direct_product2(factor_index, factor_order, factor_value, factor_num, point_num, w)
subroutine r8col_insert(n_max, m, n, a, x, col)
subroutine r8col_max_one(m, n, a)
subroutine r8vec_amax(n, a, amax)
integer(kind=4) function i4_wrap(ival, ilo, ihi)
subroutine r8poly_lagrange_coef(npol, ipol, xpol, pcof)
subroutine r8mat_zero(m, n, a)
logical(kind=4) function r8vec_all_nonpositive(n, a)
subroutine r8vec_ceiling(n, r8vec, ceilingvec)
integer(kind=4) function r8mat_nonzeros(m, n, a)
subroutine r8vec_sort_insert_a(n, a)
subroutine r8mat_kronecker(m1, n1, a, m2, n2, b, c)
subroutine r8vec_heap_a(n, a)
real(kind=8) function r8_mod(x, y)
subroutine r8int_to_r8int(rmin, rmax, r, r2min, r2max, r2)
subroutine r8col_sorted_undex(m, n, a, unique_num, undx, xdnu)
subroutine r8plu_sol(n, pivot, lu, b, x)
subroutine r8vec_fraction(n, x, fraction)
subroutine r8vec_sort_shell_a(n, a)
real(kind=8) function r8vec_normsq(n, v)
real(kind=8) function r8vec_diff_norm_l1(n, a, b)
logical(kind=4) function r8_sign_opposite_strict(r1, r2)
subroutine r8mat_print(m, n, a, title)
subroutine r8mat_print_some(m, n, a, ilo, jlo, ihi, jhi, title)
subroutine r8_roundx(nplace, x, xround)
subroutine r8vec_sort_insert_index_d(n, a, indx)
subroutine r8mat_symm_jacobi(n, a)
subroutine r8mat_l_print(m, n, a, title)
real(kind=8) function r8_log_b(x, b)
subroutine r8cmat_print_some(lda, m, n, a, ilo, jlo, ihi, jhi, title)
subroutine r8mat_row_copy(m, n, i, v, a)
subroutine r8vec_sort_bubble_a(n, a)
integer(kind=4) function r8r8_compare(x1, y1, x2, y2)
subroutine r82vec_sort_quick_a(n, a)
subroutine gamma_log_values(n_data, x, fx)
subroutine r8vec_direct_product(factor_index, factor_order, factor_value, factor_num, point_num, x)
subroutine i4vec_permute(n, p, a)
subroutine r8col_min_index(m, n, a, imin)
subroutine r8_mant(x, s, r, l)
subroutine perm_check1(n, p)
subroutine r8vec_even3(nold, nval, xold, xval)
real(kind=8) function r8_acosh(x)
real(kind=8) function r8vec_dot_product(n, v1, v2)
subroutine r82vec_print_part(n, a, max_print, title)
integer(kind=4) function r8vec_bracket5(nd, xd, xi)
subroutine r82vec_permute(n, p, a)
integer(kind=4) function i4_uniform_ab(a, b, seed)
integer(kind=4) function r8vec_norm_l0(n, a)
logical(kind=4) function r8_sign_match(r1, r2)
subroutine r8mat_scale(m, n, s, a)
real(kind=8) function r8_fraction(i, j)
real(kind=8) function r8_rise(x, n)
subroutine r8row_part_quick_a(m, n, a, l, r)
subroutine r8vec_print(n, a, title)
logical(kind=4) function r8vec_ascends(n, x)
real(kind=8) function r8vec_rms(n, a)
logical(kind=4) function r8vec_eq(n, a1, a2)
subroutine r8mat_covariance(m, n, x, c)
real(kind=8) function r8_cosd(degrees)
subroutine r8vec_index_delete_dupes(n, x, indx, n2, x2, indx2)
logical(kind=4) function r8_in_01(a)
subroutine r8vec_bracket(n, x, xval, left, right)
logical(kind=4) function r8_is_int(r)
logical(kind=4) function r8vec_gt(n, a1, a2)
real(kind=8) function r8_uniform_01(seed)
subroutine r8vec_max_index(n, a, max_index)
subroutine r8mat_identity(n, a)
real(kind=8) function r8vec_i4vec_dot_product(n, r8vec, i4vec)
subroutine r8vec_print_some(n, a, i_lo, i_hi, title)
subroutine r8mat_add(m, n, alpha, a, beta, b, c)
subroutine r8vec_amax_index(n, a, amax_index)
subroutine r8vec_sort_quick_a(n, a)
subroutine r8mat_nullspace(m, n, a, nullspace_size, nullspace)
real(kind=8) function r8_modp(x, y)
subroutine r8vec_part_quick_a(n, a, l, r)
subroutine r8block_print(l, m, n, a, title)
real(kind=8) function r8mat_minrow_maxcol(m, n, a)
logical(kind=4) function r82_lt(a1, a2)
subroutine r8vec_sorted_unique_hist(n, a, tol, maxuniq, unique_num, auniq, acount)
subroutine r8mat_max_index(m, n, a, i, j)
real(kind=8) function r8_sign3(x)
logical(kind=4) function r82_ge(a1, a2)
subroutine legendre_zeros(n, x)
subroutine r8col_min(m, n, a, amin)
subroutine r8vec_normalize(n, a)
subroutine r8mat_plot(m, n, a, title)
subroutine r8vec_dif(n, h, cof)
subroutine r8poly2_ex(x1, y1, x2, y2, x3, y3, x, y, ierror)
subroutine r8vec_bracket4(nt, t, ns, s, left)
subroutine r8vec_step(x0, n, x, fx)
subroutine r8mat_nullspace_size(m, n, a, nullspace_size)
subroutine r8vec_compare(n, a1, a2, isgn)
subroutine r8vec_ab_to_01(n, a)
subroutine r8vec_write(n, r, output_file)
subroutine r8col_first_index(m, n, a, tol, first_index)
subroutine r8plu_to_r8mat(n, pivot, lu, a)
subroutine r8vec_undex(x_num, x_val, x_unique_num, tol, undx, xdnu)
real(kind=8) function r8_degrees(radians)
subroutine r8col_separation(m, n, a, d_min, d_max)
real(kind=8) function r8mat_trace(n, a)
subroutine r8col_tol_unique_index(m, n, a, tol, unique_index)
subroutine r8vec_stutter(n, a, m, am)
subroutine r8vec_floor(n, r8vec, floorvec)
subroutine r8vec_any_normal(dim_num, v1, v2)
subroutine r8vec_sort_heap_index_a(n, a, indx)
subroutine r82_normalize(a)
subroutine r8mat_l1_inverse(n, a, b)
subroutine r8vec_legendre(n, x_first, x_last, x)
subroutine r8poly_print(n, a, title)
subroutine r8mat_fs(n, a, b, info)
subroutine r8vec_permute_cyclic(n, k, a)
subroutine r8mat_expand_linear2(m, n, a, m2, n2, a2)
real(kind=8) function r8_sind(degrees)
real(kind=8) function r8mat_mincol_maxrow(m, n, a)
logical(kind=4) function r8vec_in_ab(n, x, a, b)
subroutine i4vec_indicator1(n, a)
real(kind=8) function r8vec_normsq_affine(n, v0, v1)
integer(kind=4) function r8r8r8_compare(x1, y1, z1, x2, y2, z2)
real(kind=8) function r8_atan(y, x)
subroutine r8mat_mm(n1, n2, n3, a, b, c)
real(kind=8) function r8_uniform_ab(a, b, seed)
subroutine r8poly_shift(scale, shift, n, poly_cof)