Come ho scritto prima, la mia discussione è
mostra solo che altri linguaggi (diversi dal C) riescono ad arrivare all'obiettivo. Ciao
mostra solo che altri linguaggi (diversi dal C) riescono ad arrivare all'obiettivo. 
BlueEyes ha scritto:No, non sono un esperto di python, ma un newbie


bite ha scritto:Fortran sicuramente sì e probabilmente anche python, anche se mi sembra un po' un carcabaggio che un linguaggio compilato ne chiami uno interpretato.


bite ha scritto:Però qui trovi del codice fortran già fatto e in questo documento gli autori spiegano i metodi usati.


giuseppe morello ha scritto:In caso vedo se posso dartene copia.


#include<math.h>
#include<complex.h>
#include<stdio.h>
#include"appf1_hypser.h"
double complex appf1_hypser (double complex a, double complex b, double complex c, double complex d, double complex x, double complex y)
{
int n, m;
double complex aa, bb, cc, dd, aaa, bbb, ddd, fac, facc, F1;
printf("a=%lf b=%lf c=%lf d=%lf x=%lf y=%lf\n", creal(a), creal(b), creal(c), creal(d), creal(x), creal(y));
fac = 1.0 + 0.0*I;
F1 = 0.0 + 0.0*I;
aa = a-1.;
bb = b-1.;
cc = c-1.;
dd = d-1.;
for (n = 0; n <= 1000; n++)
{
if(n>0)
{
fac*=(aa/dd)*cc;
fac*=y/n;
}
facc=fac;
aaa=aa+1.;
ddd=dd+1.;
bbb=bb+1.;
F1+=fac;
for(m=1; m<=1000; m++)
{
facc*=(aaa/ddd)*bbb;
facc*=x/m;
F1+=facc;
aaa+=1.;
bbb+=1.;
ddd+=1.;
//printf("serie=%18.15f+%18.15f I\n", creal(F1), cimag(F1));
}
aa += 1.;
cc += 1.;
dd += 1.;
}
printf("AppellF1serie=%18.15f+%18.15f I\n", creal(F1), cimag(F1));
return F1;
}

#include<math.h>
#include<complex.h>
#include<stdio.h>
#include"appellf1.h"
#include"appf1_hypser.h"
#include"horng2.h"
double complex appellf1 (double complex a, double complex b, double complex c, double complex d, double complex x, double complex y)
{
double complex F1, aus;
double u, w, dist, distmax;
int flag;
distmax = 1.;
if(cabs(x) >= cabs(y)) dist = cabs(x);
else dist = cabs(y);
if(dist < distmax)
{
flag = 0;
}
else
{
...........una serie di condizioni che a seconda dei valori di x e y scelgono una flag
}
if(flag==0)
{
F1 = appf1_hypser(a,b,c,d,x,y);
//printf("FLAG=%d\n", flag);
//printf("a=%lf b=%lf c=%lf d=%lf x=%lf y=%lf\n", creal(a), creal(b), creal(c), creal(d), creal(x), creal(y));
}
...........a seconda del valore di flag vengono eseguite delle operazioni su x e y e vengono chiamate diverse funzioni
return F1;
}
Visualizzano questa sezione: 0 utenti registrati e 3 ospiti