Fortran - Funciones de reducción
La siguiente tabla describe las funciones de reducción:
Función | Descripción |
---|---|
todo (máscara, tenue) | Devuelve un valor lógico que indica si todas las relaciones en la máscara son verdaderas, junto con solo la dimensión deseada si se proporciona el segundo argumento. |
cualquiera (máscara, tenue) | Devuelve un valor lógico que indica si alguna relación en la máscara es .verdadero, junto con solo la dimensión deseada si se proporciona el segundo argumento. |
count (máscara, tenue) | Devuelve un valor numérico que es el número de relaciones en la máscara que son verdaderas, junto con solo la dimensión deseada si se proporciona el segundo argumento. |
maxval (matriz, atenuación, máscara) | Devuelve el valor más grande en la matriz de matriz, de los que obedecen a la relación en la máscara del tercer argumento, si se da esa, junto con solo la dimensión deseada si se da el segundo argumento dim. |
minval (matriz, atenuación, máscara) | Devuelve el valor más pequeño en la matriz de matriz, de los que obedecen a la relación en la máscara del tercer argumento, si se da, junto con solo la dimensión deseada si se proporciona el segundo argumento DIM. |
producto (matriz, atenuado, máscara) | Devuelve el producto de todos los elementos en la matriz de matriz, de aquellos que obedecen a la relación en la máscara del tercer argumento, si se da, junto con solo la dimensión deseada si se da el segundo argumento dim. |
suma (matriz, tenue, máscara) | Devuelve la suma de todos los elementos en la matriz de matriz, de aquellos que obedecen a la relación en la máscara del tercer argumento, si se da, junto con solo la dimensión deseada si se da el segundo argumento dim. |
Example
El siguiente ejemplo demuestra el concepto:
program arrayReduction
real, dimension(3,2) :: a
a = reshape( (/5,9,6,10,8,12/), (/3,2/) )
Print *, all(a>5)
Print *, any(a>5)
Print *, count(a>5)
Print *, all(a>=5 .and. a<10)
end program arrayReduction
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
F
T
5
F
Example
El siguiente ejemplo demuestra el concepto:
program arrayReduction
implicit none
real, dimension(1:6) :: a = (/ 21.0, 12.0,33.0, 24.0, 15.0, 16.0 /)
Print *, maxval(a)
Print *, minval(a)
Print *, sum(a)
Print *, product(a)
end program arrayReduction
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
33.0000000
12.0000000
121.000000
47900160.0