me da el error
tup+0x2e): undefined reference to `WinMain'
tup+0x2e): undefined reference to `WinMain'
collect2.exe: error: ld returned 1 exit status
!module Algebra
!contains
!real function trace(A) result(T)
! real, intent(in) :: A(:,:)
!integer :: N
! N = size(A, dim = 1)
!T = sum ( [ (A(i, i), i = 1, N) ] )
! end function
! end module @módulo Álgebra @ @ implícita ninguno @ @ contiene @ @! Calcula la traza de una @función de matriz cuadrada trace (A) result (S) @ real, intent (in) :: A (:, :)! forma asumida @ real :: S @ @ entero :: k! índice del @ entero diagonal :: N! dimensión de la matriz @ @ N = tamaño (A, dim = 1)! filas dim = 1, columnas dim = 2 @ @ S = 0 @ do k = 1, N @ S = S + A (k, k) @ end do @ @end función
! Crea una matriz de Vandermonde de dimensión N x N @función Vandermonde (N) resultado (A) @ integer, intent (in) :: N! Dimensión de Vandermonde @ real :: A (N, N) @ @ entero :: i, j! fila, columna @ @ do i = 1, N @ do j = 1, N @ A (i, j) = (i / real (N)) ** (j-1) @ end do @ end do
end function
! Calcula la k-ésima potencia de la @función de la matriz A potencia (A, k) resultado (B) @ real, intent (in) :: A (:, :) @ integer, intent (in) :: k! kth potencia @ real :: B (tamaño (A, dim = 1), tamaño (A, dim = 1)) @ @ entero :: i, N @ @ ! A ** k = AA ** (k-1) @ N = tamaño (A, dim = 1) @ @ B = Identidad (N) @ @ do i = 1, k @ B = matmul (B, A)! k = 1, B \<- IA @ ! k = 2 B \<- AA @ ! k = 3 B \<- A ** 2 A @ end do
end function
function Identity(N) result(A)
integer, intent(in) :: N ! Identity dimension
real :: A( N, N )
integer :: i, j ! row, column
do i=1, N
do j=1, N
if (i==j) then
A(i,j) = 1
else
A(i,j) = 0
end if
end do
end do
end function
end module