OSDN Git Service

unstable-commit
authorteoxx <teoxx@0e905424-1750-4201-adbd-bf076348bc1c>
Tue, 9 Dec 2008 02:52:12 +0000 (02:52 +0000)
committerteoxx <teoxx@0e905424-1750-4201-adbd-bf076348bc1c>
Tue, 9 Dec 2008 02:52:12 +0000 (02:52 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/applied-gslp@97 0e905424-1750-4201-adbd-bf076348bc1c

trunk/noumerov/noumerov
trunk/noumerov/noumerov.c
trunk/noumerov/noumerov.o

index 902ff97..4636643 100755 (executable)
Binary files a/trunk/noumerov/noumerov and b/trunk/noumerov/noumerov differ
index dfcd441..536ef0e 100644 (file)
@@ -184,6 +184,16 @@ size_t array_num;
        return;
 }
 
+double norm_theta(theta)
+double theta;
+{
+       double T = 2*M_PI;
+       while( theta < -M_PI || M_PI < theta ){
+               theta -= GSL_SIGN(theta)*T;
+       }
+       return theta;
+}
+
 typedef struct {
        double m;
        int l;
@@ -294,7 +304,7 @@ param *p;
           2.221939e-16    8.203930e-05
         */
        i = 0;
-       p->delta = 6.0;
+       p->delta = norm_theta(6.0);
        p->k = sqrt(2 * p->m * p->E) / hbar;
        p->A = 1E+16;
        p->r_num = 100;
@@ -324,16 +334,6 @@ param *p;
 }
 
 double norm_theta(double theta);
-double norm_theta(theta)
-double theta;
-{
-       double T = 2*M_PI;
-       while( theta < -M_PI || M_PI < theta ){
-               theta -= GSL_SIGN(theta)*T;
-       }
-       return theta;
-}
-
 void param_free(p)
 param *p;
 {
@@ -351,7 +351,7 @@ double u(p, t)
 param *p;
 double t;
 {
-       double delta = p->delta;
+       double delta = norm_theta(p->delta);
        int l = p->l;
        double kt = p->k * t;
        double A = p->A;
@@ -437,7 +437,7 @@ double dudA(p, t)
 param *p;
 double t;
 {
-       double delta = p->delta;
+       double delta = norm_theta(p->delta);
        int l = p->l;
        double kt = p->k * t;
        double result = 0.0;
@@ -453,7 +453,7 @@ double duddelta(p, t)
 param *p;
 double t;
 {
-       double delta = p->delta;
+       double delta = norm_theta(p->delta);
        int l = p->l;
        double kt = p->k * t;
        double A = p->A;
@@ -771,7 +771,7 @@ param *p;
        gsl_multifit_function_fdf f;
        double x_init[2];
        x_init[0] = p->A;
-       x_init[1] = p->delta;
+       x_init[1] = norm_theta(p->delta);
        x = gsl_vector_view_array(x_init, 2);
        f.f = &calc_f;
        f.df = &calc_df;
@@ -835,7 +835,7 @@ param *p;
        double *u_data = p->u->data;
        double *dudr_data = p->dudr->data;
        double A_init = p->A;
-       double delta_init = p->delta;
+       double delta_init = norm_theta(p->delta);
        printf("\n");
        printf("#");
        printf("chisq/dof\t");
index b8a7fe8..6c0eb8b 100644 (file)
Binary files a/trunk/noumerov/noumerov.o and b/trunk/noumerov/noumerov.o differ