Foros-FIUBA Foros HostingPortal
 FAQ  •  Buscar  •  Wiki  •  Apuntes  •  Planet  •  Mapa  •  Eyeon  •  Chat
Preferencias  •  Grupos de Usuarios
Registrarse  •  Perfil  •  Entrá para ver tus mensajes privados  •  Login
Ver tema siguiente
Ver tema anterior

Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente
Autor Mensaje
Sebastian Santisi
Administrador Técnico


Edad: 38
Registrado: 23 Ago 2005
Mensajes: 17445


argentina.gif
MensajePublicado: Dom Oct 14, 2012 10:24 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

_nacho_ escribió:
Fortran es más una familia de lenguajes que un lenguaje. Cualquier cosa previa a Fortran 77 es completamente obsoleta; Fortran 77 es bastante limitado, pero sigue funcionando; Fortran 95 es bastante decente, principalmente porque permite manejar memoria en forma dinámica; Fortran 2003 y 2008 ya son demasiado rebuscados: por ejemplo, incluyen extensiones para programación orientada a objetos. Si tenés que hacer eso, probablemente sea mejor escribirlo en otra cosa.

El tema es que, si la comparación es C contra Fortran, estás tomando un lenguaje que en sus inicios, en la década del '70 ya era completo con uno que recién dejó de ser una cosa casi prehistórica para F90. Que haya logrado equipararse en modelo de memoria a C no lo hace elegible por encima de C; sintácticamente sigue siendo igual de tosco que lo fue siempre. Es algo similar a lo que ocurre con BASIC o con Pascal; con el correr de los años fueron arreglando determinadas cosas de diseño hacia algo más usable. A los tres les agregaron objetos (F03, VB, Delphi) de una manera totalmente antinatural, y efectivamente, la comunidad que los usaba siguió adelante usando esos adefesios totalmente forzados. El hecho de que haya gente que siga adelante pese a todo me da la pauta de que se trata simplemente de aferrarse a lo conocido. Hay grandes proyectos supuestamente serios codeados en OOP con Fortran y no sé si alguna vez tuviste que meter mano en alguno de ellos... :S.
_nacho_ escribió:
Ahora, no se bien por qué (si es algo intrínseco a la definición del lenguaje o a la implementación en los compiladores, particularmente los de Intel), un programa en Fortran bien optimizado corre rapidísimo. Igualmente, salvo que a uno le preocupe mucho la velocidad, probablemente sea más piola escribirlo en otra cosa, que te haga renegar menos.

Esta es una pavada que escuché bastantes veces de parte de gente que se aferra a Fortran. Es técnicamente imposible que un programa en Fortran corra más rápido que uno de C. El tipo de instrucciones, el tipo de memoria, el tipo de stack (desde F90), el tipo de variables, etc. son similares en los dos lenguajes. Las únicas diferencias que quedan hoy son sintácticas (y la sintaxis pesa bastante a la hora de compararlos).

No sé quién habrá inventado el verso de que un programa en Fortran es más veloz que C; pero, de verdad, lo escuché muchísimas veces... siempre de gente que programa en la actualidad en Fortran, y nunca con un respaldo detrás.

_________________
Image[tex] ${. \ \ \ \ \ \ \ \ \ .}$ [/tex][tex] ${\Large Usá \LaTeX, no seas foro...}$ [/tex]

Aries Género:Masculino Perro OfflineGalería Personal de Sebastian SantisiVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuario
Johann
Nivel 9


Edad: 30
Registrado: 04 Abr 2009
Mensajes: 1098
Ubicación: Nuñez
Carrera: Informática
CARRERA.informatica.3.jpg
MensajePublicado: Dom Oct 14, 2012 12:16 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Coincido con Santisi.
Nunca usé Fortran, pero durante la carrera varios profesores hablaron de él, y todos coinciden en que es un lenguaje obsoleto en todo sentido.

C es muy rápido, pero solo se justifica usarlo en situaciones específicas, en general cuando hay problemas de performance no es debido al lenguaje si no al diseño (esto sí lo vi).


Capricornio Género:Masculino Serpiente OfflineGalería Personal de JohannVer perfil de usuarioEnviar mensaje privado
_nacho_
Nivel 9



Registrado: 08 Oct 2007
Mensajes: 1271

Carrera: No especificada
uruguay.gif
MensajePublicado: Dom Oct 14, 2012 12:26 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

A las pruebas me remito: una diferencia conocida es que no hay una implementación rápida de potencias enteras en C standard.

prueba.c
Código:

#include <stdio>
#include <stdlib>
#include <math>
#define N 100000000

int main(){
  double a, b;
  int i;
 
  for (i=0;i<N;i++){
    a = (double) random()/RAND_MAX;
    b = pow(a, 5);
  }
  return 0;
}


prueba.f
Código:

      program prueba
        implicit none
        integer :: i
        integer, parameter :: N = 100000000
        real :: a, b

        do i=1, N
          call random_number(a)
          b = a**5
        end do
      end program


Compilando con el máximo nivel de optimización, pero sin hacer nada loco:

Código:

nacho@isidoro:~/temp/test_fort$ gcc prueba.c -o prueba -lm -O3
nacho@isidoro:~/temp/test_fort$ time ./prueba

real   0m9.464s
user   0m9.465s
sys   0m0.004s

nacho@isidoro:~/temp/test_fort$  g95 prueba.f -o prueba -O3 -r8 -i8
nacho@isidoro:~/temp/test_fort$ time ./prueba

real   0m2.063s
user   0m2.064s
sys   0m0.000s

nacho@isidoro:~/temp/test_fort$ ifort prueba.f -o prueba -i8 -r8 -O3
nacho@isidoro:~/temp/test_fort$ time ./prueba

real   0m1.847s
user   0m1.848s
sys   0m0.000s



(haciendo la cuenta en simple precisión C tarda aproximadamente la mitad y Fortran lo mismo).

_________________

 Género:Masculino  OfflineGalería Personal de _nacho_Ver perfil de usuarioEnviar mensaje privado
joselipo
Nivel 9



Registrado: 22 Ago 2005
Mensajes: 2372
Ubicación: Bs. As.
Carrera: Electrónica
blank.gif
MensajePublicado: Dom Oct 14, 2012 12:35 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Ya desvirtuando completamente, ¿y qué les parece python en comparación con los otros dos? Me asombra que algo pueda andar mejor que C, pero tanto Fortran (alguna vez oí) como phyton tienen rutinas para generar gráficos, etc.


 Género:Masculino  OcultoGalería Personal de joselipoVer perfil de usuarioEnviar mensaje privado
_nacho_
Nivel 9



Registrado: 08 Oct 2007
Mensajes: 1271

Carrera: No especificada
uruguay.gif
MensajePublicado: Dom Oct 14, 2012 12:58 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Y... la ventaja fundamental de Python son las bibliotecas: hay muchas cosas ya hechas, así que es muy probable que ande más rápido un buen algoritmo bien implementado en una biblioteca que lo que sea que uno se sienta y programa en un rato.

Además, si uno le suma al tiempo de cálculo el tiempo de desarrollo, claramente gana Python: una cosa es hacer un producto matrix - matriz, pero otra cosa es cuando una de las matrices es una imagen, y uno tiene que escribir una rutina para levantar la imagen, etc, etc...

_________________

 Género:Masculino  OfflineGalería Personal de _nacho_Ver perfil de usuarioEnviar mensaje privado
joselipo
Nivel 9



Registrado: 22 Ago 2005
Mensajes: 2372
Ubicación: Bs. As.
Carrera: Electrónica
blank.gif
MensajePublicado: Dom Oct 14, 2012 1:55 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Gracias por la respuesta.


 Género:Masculino  OcultoGalería Personal de joselipoVer perfil de usuarioEnviar mensaje privado
Torbellino
Nivel 9


Edad: 33
Registrado: 30 May 2006
Mensajes: 1742
Ubicación: Congreso
Carrera: Electrónica y Informática
CARRERA.electronica.4.gif
MensajePublicado: Dom Oct 14, 2012 4:11 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Sebastian Santisi escribió:
_nacho_ escribió:
Fortran es más una familia de lenguajes que un lenguaje. Cualquier cosa previa a Fortran 77 es completamente obsoleta; Fortran 77 es bastante limitado, pero sigue funcionando; Fortran 95 es bastante decente, principalmente porque permite manejar memoria en forma dinámica; Fortran 2003 y 2008 ya son demasiado rebuscados: por ejemplo, incluyen extensiones para programación orientada a objetos. Si tenés que hacer eso, probablemente sea mejor escribirlo en otra cosa.

El tema es que, si la comparación es C contra Fortran, estás tomando un lenguaje que en sus inicios, en la década del '70 ya era completo con uno que recién dejó de ser una cosa casi prehistórica para F90. Que haya logrado equipararse en modelo de memoria a C no lo hace elegible por encima de C; sintácticamente sigue siendo igual de tosco que lo fue siempre. Es algo similar a lo que ocurre con BASIC o con Pascal; con el correr de los años fueron arreglando determinadas cosas de diseño hacia algo más usable. A los tres les agregaron objetos (F03, VB, Delphi) de una manera totalmente antinatural, y efectivamente, la comunidad que los usaba siguió adelante usando esos adefesios totalmente forzados. El hecho de que haya gente que siga adelante pese a todo me da la pauta de que se trata simplemente de aferrarse a lo conocido. Hay grandes proyectos supuestamente serios codeados en OOP con Fortran y no sé si alguna vez tuviste que meter mano en alguno de ellos... :S.


Me parece que la comparación que estás haciendo es injusta. Fortran no dejó de ser prehistórico recién cuando le agregaron objetos, y si vamos al caso a C nunca se lo agregaron. Las extensiones que hay para eso, hasta donde yo sé, no se usan (objective C por ejemplo), directamente hicieron otro lenguaje, eso sí, compatible con lo viejo, que también es bastante adefesio (C++), y a C lo fueron extendiendo para tener varias capacidades de C++ (por ejemplo arrays de tamaño dinámico), que por supuesto no funcionan bien. El mismo argumento de "que haya gente que siga adelante pese a todo me da la pauta de que se trata simplemente de aferrarse a lo conocido" lo pueden usar contra C. De hecho, podés pasarte por una clase de Tugnarelli en Algoritmos n que seguro que lo dice, no pierde oportunidad. Es el estereotipo de Java boy que usa 4 o 5 clases para reemplazar unsigned int contador, eso sí, le aplica MVC.

Ojo, capaz tenes razón, yo no conozco tanto del tema, pero lo planteaste muy mal. Compará C y Fortran en sus capacidades.


Saludos

_________________
Image
No hay vuelta atrás...


Spike Spiegel escribió:
Por un lado se celebran las hazañas de San Martín, Bolivar y demases, la reforma de 1918, el cordobazo y otras tantas en Argentina, Latinoamérica y el mundo entero. No sé cuántos habrán llorado mirando Braveheart al grito de FREEDOM de Wallace y dicho "cuántos huevos, viejo", tenido ganas de cambiar el mundo cuando terminaron de ver V for Vendetta o celebrado toda la ficcionaria justicia que solía hacer El Zorro.
Y sin embargo...
"Ay, no, violencia no. Ay, no, corte de calle, no. Ay, no, piden democracia pero son antidemocráticos con sus métodos. Ay, no, a la facultad se viene a estudiar"
¡PERO QUÉ MANGA DE PUTOS!

Leo Género:Masculino Tigre OfflineGalería Personal de TorbellinoVer perfil de usuarioEnviar mensaje privadoEnviar emailMSN MessengerNúmero ICQ
koreano
Nivel 9



Registrado: 15 Jul 2010
Mensajes: 1796

Carrera: No especificada
blank.gif
MensajePublicado: Dom Oct 14, 2012 4:51 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

_nacho_ escribió:
A las pruebas me remito: una diferencia conocida es que no hay una implementación rápida de potencias enteras en C standard.

prueba.c
Código:

#include <stdio>
#include <stdlib>
#include <math>
#define N 100000000

int main(){
  double a, b;
  int i;
 
  for (i=0;i<N;i++){
    a = (double) random()/RAND_MAX;
    b = pow(a, 5);
  }
  return 0;
}


prueba.f
Código:

      program prueba
        implicit none
        integer :: i
        integer, parameter :: N = 100000000
        real :: a, b

        do i=1, N
          call random_number(a)
          b = a**5
        end do
      end program


Compilando con el máximo nivel de optimización, pero sin hacer nada loco:

Código:

nacho@isidoro:~/temp/test_fort$ gcc prueba.c -o prueba -lm -O3
nacho@isidoro:~/temp/test_fort$ time ./prueba

real   0m9.464s
user   0m9.465s
sys   0m0.004s

nacho@isidoro:~/temp/test_fort$  g95 prueba.f -o prueba -O3 -r8 -i8
nacho@isidoro:~/temp/test_fort$ time ./prueba

real   0m2.063s
user   0m2.064s
sys   0m0.000s

nacho@isidoro:~/temp/test_fort$ ifort prueba.f -o prueba -i8 -r8 -O3
nacho@isidoro:~/temp/test_fort$ time ./prueba

real   0m1.847s
user   0m1.848s
sys   0m0.000s



(haciendo la cuenta en simple precisión C tarda aproximadamente la mitad y Fortran lo mismo).


Don't be gil, pow() no es para usar con potencias enteras. Supongo que la diferencia en tiempos es que Fortran tiene incluido el operador "potencia" entonces puede hacer la optimización obvia. En C no tenés overloading pero una implementación trivial para potencias naturales sería:

Código:

double powInteger(double num, int p) {
 double res = num;
 int i;
 for(i = 1;i < p;++i) {
  res *= num;
 }
 return res;
}



Que para el programa que pusiste es 20 veces mas rapido.

La cuestión es la siguiente, C es un lenguaje que te permite acceder a los mas bajos niveles. Por lo tanto, usando C podés hacer CUALQUIER optimización que vos quieras (en teoría). Esto lo aclaro porque están comparando lenguajes de bajo/medio nivel por su "velocidad" cuando en realidad la velocidad con la que corren los programas en estos lenguajes depende enteramente de:

a. El compilador
b. Los algoritmos/el programa

Entonces si la velocidad no es un problema, es mejor elegir un lenguaje que tenga las facilidades/herramientas/paradigmas/etc para programar lo que sea que tenés que programar.

Yo la verdad que no conozco Fortran, quería aportar eso. Se que se usaba mucho antes y que ahora se sigue usando en cosas viejas por una cuestión de mantenimiento o software ya existente en ese lenguaje. Honestamente desde que empecé a programar nunca escuché a nadie considerarlo para usarlo frente a ningun problema real, pero no conozco cuales son sus fuertes. Por lo que vi de la sintaxis para mí es horrible, pero obvio que estoy 'aferrado' a los lenguajes modernos basados en C :P


   OcultoGalería Personal de koreanoVer perfil de usuarioEnviar mensaje privado
Sebastian Santisi
Administrador Técnico


Edad: 38
Registrado: 23 Ago 2005
Mensajes: 17445


argentina.gif
MensajePublicado: Dom Oct 14, 2012 5:22 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Torbellino escribió:
Sebastian Santisi escribió:
_nacho_ escribió:
Fortran es más una familia de lenguajes que un lenguaje. Cualquier cosa previa a Fortran 77 es completamente obsoleta; Fortran 77 es bastante limitado, pero sigue funcionando; Fortran 95 es bastante decente, principalmente porque permite manejar memoria en forma dinámica; Fortran 2003 y 2008 ya son demasiado rebuscados: por ejemplo, incluyen extensiones para programación orientada a objetos. Si tenés que hacer eso, probablemente sea mejor escribirlo en otra cosa.

El tema es que, si la comparación es C contra Fortran, estás tomando un lenguaje que en sus inicios, en la década del '70 ya era completo con uno que recién dejó de ser una cosa casi prehistórica para F90. Que haya logrado equipararse en modelo de memoria a C no lo hace elegible por encima de C; sintácticamente sigue siendo igual de tosco que lo fue siempre. Es algo similar a lo que ocurre con BASIC o con Pascal; con el correr de los años fueron arreglando determinadas cosas de diseño hacia algo más usable. A los tres les agregaron objetos (F03, VB, Delphi) de una manera totalmente antinatural, y efectivamente, la comunidad que los usaba siguió adelante usando esos adefesios totalmente forzados. El hecho de que haya gente que siga adelante pese a todo me da la pauta de que se trata simplemente de aferrarse a lo conocido. Hay grandes proyectos supuestamente serios codeados en OOP con Fortran y no sé si alguna vez tuviste que meter mano en alguno de ellos... :S.


Me parece que la comparación que estás haciendo es injusta. Fortran no dejó de ser prehistórico recién cuando le agregaron objetos

No, dije que Fortran dejó de ser prehistórico en el '90 cuando le agregaron un stack que no fuera prehistórico (antes del '90 tenía manejo estático de memoria, no se podía implementar recursividad, no habían punteros y no había memoria dinámica). Los objetos los agregaron en el '03, más de 10 años después.


Adhiero al comentario de koreano al respecto de que es un caso de borde total perfectamente salvable si justo tenés que trabajar intensivamente sobre potencias enteras. No hice la comparación, pero la solución que propuso él de potencias tiene complejidad lineal y podría implementarse con complejidad logarítmica con el inmediato speedup.

No entendí el comentario de la precisión. En C, la libm implementa pow() en double, independientemente de los tipos de tus variables. No deberían haber diferencias sustanciales.


Sobre lo de que se usa para mantener cosas viejas, not true. En grupos de Física, Química, Ingeniería y demases, donde no saben programar, forman a los nuevos en continuar la práctica ancestral de programar en Fortran. La excusa es "es un lenguaje pensado para programar matemáticas", donde es una frase que se remite a 1950, cuando existían COBOL, Lisp y Fortran y entre esos 3, Fortran era el que tenía ese objetivo.

_________________
Image[tex] ${. \ \ \ \ \ \ \ \ \ .}$ [/tex][tex] ${\Large Usá \LaTeX, no seas foro...}$ [/tex]

Aries Género:Masculino Perro OfflineGalería Personal de Sebastian SantisiVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuario
Sebastian Santisi
Administrador Técnico


Edad: 38
Registrado: 23 Ago 2005
Mensajes: 17445


argentina.gif
MensajePublicado: Dom Oct 14, 2012 5:38 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Sobre el tema Python, depende muuucho de lo que quieras hacer.

Es bastante versátil, rápido y legible; pero si estás haciendo cómputo numérico, es muy lerdo para iterar, lo cual resta muchos porotos.

Como dice Nacho, gana con las bibliotecas; básicamente todo lo que existe para C o C++ está bindeado como biblitoeca en Python (y si no, es trivial hacer uno mismo el binding). Si usás Python con las bibliotecas adecuadas que te permitan evitar resolver las cosas del lado de Python y resolverlas del lado de la biblioteca (que probablemente esté en C) todo va a andar lindo y con altísimo nivel.

Dependiendo de lo intensivo del cómputo; muchas veces suele ser mejor opción usar Octave. Con Octave hay que tener el mismo cuidado de aprovechar las funciones que tiene implementadas en C en vez de ponerse a iterar uno mismo.

_________________
Image[tex] ${. \ \ \ \ \ \ \ \ \ .}$ [/tex][tex] ${\Large Usá \LaTeX, no seas foro...}$ [/tex]

Aries Género:Masculino Perro OfflineGalería Personal de Sebastian SantisiVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuario
_nacho_
Nivel 9



Registrado: 08 Oct 2007
Mensajes: 1271

Carrera: No especificada
uruguay.gif
MensajePublicado: Dom Oct 14, 2012 6:26 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

El operador ** de Fortran funciona tanto con potencias enteras como reales, pero está optimizado para potencias enteras. Yo no dije que sea imposible hacer un programa en C que sea más rápido que en Fortran, sólo que agarrando un compilador y escribiendo lenguaje standard, Fortran es mucho más rápido. (Ojo, el programa en C que puso koreano tampoco es "veinte veces" más rápido... es tan rápido como Fortran, porque Fortran tampoco hace magia).

Respecto a que sea un lenguaje pensado para programar matemáticas, claramente C no lo es, si para hacer bien una simple potencia tenés que escribir tu propia función.

Además, llevándolo un poco más lejos: supongamos que quiero hacer el mismo programita pero con números complejos. En Fortran solo tengo que cambiar el tipo de datos real por el tipo de datos complex, que también es intrínseco:

Código:

      program prueba2
        implicit none
     
        integer, parameter :: n=100000000
        integer :: i
        real    :: a, b
        complex :: c, d
     
        do i=1, n
          call random_number(a)
          c = cmplx(a,a)
          d = c**2
        end do
      end program


Eso corre casi en el mismo tiempo que corre la versión con números reales:

Código:
nacho@isidoro:~/temp/test_fort$ ifort prueba2.f -o prueba2 -i8 -r8 -O3
nacho@isidoro:~/temp/test_fort$ time ./prueba2

real   0m1.843s
user   0m1.848s
sys   0m0.000s


En C tenés que usar alguna biblioteca y encima la sintaxis es una gadorcha (porque no tiene sobrecarga de operadores). Es C++ podés hacer algo un poco más elegante (o usar algo que hizo otro), pero igualmente no es tan simple como agarrar un lenguaje en el que el tipo de datos complejo ya existe.

Fortran es un lenguaje pensado para programar cosas matemáticas, como también lo es Matlab/Octave. Lo que no quiere decir que no se puedan programar matemáticas en C, en Python o en algún otro lenguaje de propósito general. El problema suele suceder cuando se hace lo contrario: por ejemplo, un parser escrito en Fortran es una patada en los huevos.

_________________

 Género:Masculino  OfflineGalería Personal de _nacho_Ver perfil de usuarioEnviar mensaje privado
koreano
Nivel 9



Registrado: 15 Jul 2010
Mensajes: 1796

Carrera: No especificada
blank.gif
MensajePublicado: Dom Oct 14, 2012 6:45 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

[offtopic^2] C++ tiene numeros complejos [/offtopic^2]


   OcultoGalería Personal de koreanoVer perfil de usuarioEnviar mensaje privado
Johann
Nivel 9


Edad: 30
Registrado: 04 Abr 2009
Mensajes: 1098
Ubicación: Nuñez
Carrera: Informática
CARRERA.informatica.3.jpg
MensajePublicado: Dom Oct 14, 2012 7:34 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

_nacho_ escribió:
Respecto a que sea un lenguaje pensado para programar matemáticas, claramente C no lo es, si para hacer bien una simple potencia tenés que escribir tu propia función.


Math es una librería como cualquier otra, no es parte del lenguaje.
Tranquilamente se puede buscar una que tenga una función con la exponenciación entera optimizada.


Capricornio Género:Masculino Serpiente OfflineGalería Personal de JohannVer perfil de usuarioEnviar mensaje privado
_nacho_
Nivel 9



Registrado: 08 Oct 2007
Mensajes: 1271

Carrera: No especificada
uruguay.gif
MensajePublicado: Dom Oct 14, 2012 7:51 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Johann escribió:

Math es una librería como cualquier otra, no es parte del lenguaje.
Tranquilamente se puede buscar una que tenga una función con la exponenciación entera optimizada.


Math no es una biblioteca cualquiera, es parte de C Standard Library. Hay otras bibliotecas, como la GNU Scientific Library (que, me parece, es lo más recomendable si no queda otra que hacerlo en C), que tienen implementada una función para potencias enteras. Pero no se distribuye con el código, y si uno cambia de plataforma tendría que recompilar la biblioteca. En Fortran funciona out of the box.

_________________

 Género:Masculino  OfflineGalería Personal de _nacho_Ver perfil de usuarioEnviar mensaje privado
Johann
Nivel 9


Edad: 30
Registrado: 04 Abr 2009
Mensajes: 1098
Ubicación: Nuñez
Carrera: Informática
CARRERA.informatica.3.jpg
MensajePublicado: Dom Oct 14, 2012 7:58 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

_nacho_ escribió:
Johann escribió:

Math es una librería como cualquier otra, no es parte del lenguaje.
Tranquilamente se puede buscar una que tenga una función con la exponenciación entera optimizada.


Math no es una biblioteca cualquiera, es parte de C Standard Library. Hay otras bibliotecas, como la GNU Scientific Library (que, me parece, es lo más recomendable si no queda otra que hacerlo en C), que tienen implementada una función para potencias enteras. Pero no se distribuye con el código, y si uno cambia de plataforma tendría que recompilar la biblioteca. En Fortran funciona out of the box.


Sé que es parte de las bibliotecas standard, pero eso no la hace parte del lenguaje...no se debe a C que sea lenta la función pow.


Capricornio Género:Masculino Serpiente OfflineGalería Personal de JohannVer perfil de usuarioEnviar mensaje privado
Mostrar mensajes de anteriores:      
Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente

Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro
No podés responder a temas en este foro
No podés editar tus mensajes en este foro
No podés borrar tus mensajes en este foro
No podés votar en encuestas en este foro
No Podéspostear archivos en este foro
No Podés bajar archivos de este foro


Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker
365 Attacks blocked.

Powered by phpBB2 Plus, phpBB Styles and Kostenloses Forum based on phpBB © 2001/6 phpBB Group :: FI Theme :: Mods y Créditos

Foros-FIUBA está hosteado en Neolo.com Cloud Hosting

[ Tiempo: 0.2400s ][ Pedidos: 20 (0.1386s) ]