EconForge / interpolation.py

BSD 2-Clause "Simplified" License
123 stars 35 forks source link

Unintended printing of generated code #46

Closed pkofod closed 5 years ago

pkofod commented 5 years ago

I remember having seen this using interpolation.py before, but was reminded when I was trying out dolo. Say, when solving a model using time iteration, you'll get something like

>>> dr = time_iteration(model)
Solving WITH complementarities.
------------------------------------------------
| N   |  Error     | Gain     | Time     | nit |
------------------------------------------------
def get_grid(a,b,n,C): return ((a[0],b[0],n[0]),)
We are going to extrapolate in array(float64, 2d, C) mode.
We are going to do inplace, with default extrapolation
def eval_cubic(grid, C, points, out):
    "This is my docstring"

    N = points.shape[0]

    n_vals = C.shape[1]

    #recover grid parameters
    # dim 0: uniform
    a_0 = grid[0][0]
    b_0 = grid[0][1]
    n_0 = grid[0][2]
    δ_0 = (n_0-1.0)/(b_0-a_0)

    for nn in range(N):

        # extract coordinates
        x_0 = points[nn,0]

        # compute indices and barycentric coordinates
        # dimension 0: uniform grid
        u_0 = (x_0 - a_0)*δ_0
        i_0 = int( floor( u_0 ) )
        i_0 = max( min(i_0,n_0-2), 0 )
        λ_0 = u_0-i_0

        # Basis functions

        μ_0_0 = λ_0*λ_0*λ_0;  μ_0_1 = λ_0*λ_0;  μ_0_2 = λ_0;  μ_0_3 = 1.0;
        Φ_0_0 = 0.0
        Φ_0_1 = 0.0
        Φ_0_2 = 0.0
        Φ_0_3 = 0.0
        if λ_0 < 0:
            Φ_0_0 = dCd[0,3]*λ_0 + Cd[0,3]
            Φ_0_1 = dCd[1,3]*λ_0 + Cd[1,3]
            Φ_0_2 = dCd[2,3]*λ_0 + Cd[2,3]
            Φ_0_3 = dCd[3,3]*λ_0 + Cd[3,3]
        elif λ_0 > 1:
            Φ_0_0 = (3*Cd[0,0] + 2*Cd[0,1] + Cd[0,2])*(λ_0-1) + (Cd[0,0]+Cd[0,1]+Cd[0,2]+Cd[0,3])
            Φ_0_1 = (3*Cd[1,0] + 2*Cd[1,1] + Cd[1,2])*(λ_0-1) + (Cd[1,0]+Cd[1,1]+Cd[1,2]+Cd[1,3])
            Φ_0_2 = (3*Cd[2,0] + 2*Cd[2,1] + Cd[2,2])*(λ_0-1) + (Cd[2,0]+Cd[2,1]+Cd[2,2]+Cd[2,3])
            Φ_0_3 = (3*Cd[3,0] + 2*Cd[3,1] + Cd[3,2])*(λ_0-1) + (Cd[3,0]+Cd[3,1]+Cd[3,2]+Cd[3,3])
        else:
            Φ_0_0 = (Cd[0,0]*μ_0_0 + Cd[0,1]*μ_0_1 + Cd[0,2]*μ_0_2 + Cd[0,3]*μ_0_3)
            Φ_0_1 = (Cd[1,0]*μ_0_0 + Cd[1,1]*μ_0_1 + Cd[1,2]*μ_0_2 + Cd[1,3]*μ_0_3)
            Φ_0_2 = (Cd[2,0]*μ_0_0 + Cd[2,1]*μ_0_1 + Cd[2,2]*μ_0_2 + Cd[2,3]*μ_0_3)
            Φ_0_3 = (Cd[3,0]*μ_0_0 + Cd[3,1]*μ_0_1 + Cd[3,2]*μ_0_2 + Cd[3,3]*μ_0_3)

        for i_x in range(n_vals):
            out[nn,i_x] = Φ_0_0*(C[i_0, i_x]) + Φ_0_1*(C[i_0 + 1, i_x]) + Φ_0_2*(C[i_0 + 2, i_x]) + Φ_0_3*(C[i_0 + 3, i_x])

|   1 |  8.000e-01 |      nan |    0.846 |   5 |
|   2 |  8.027e-02 |    0.100 |    0.048 |   6 |
|   3 |  4.881e-02 |    0.608 |    0.036 |   4 |
|   4 |  3.369e-02 |    0.690 |    0.042 |   5 |
|   5 |  2.470e-02 |    0.733 |    0.033 |   4 |
|   6 |  1.938e-02 |    0.785 |    0.046 |   5 |
|   7 |  1.541e-02 |    0.795 |    0.039 |   5 |
|   8 |  1.223e-02 |    0.794 |    0.035 |   4 |
|   9 |  9.744e-03 |    0.797 |    0.033 |   4 |
|  10 |  7.958e-03 |    0.817 |    0.031 |   4 |
|  11 |  6.347e-03 |    0.798 |    0.034 |   4 |
|  12 |  5.251e-03 |    0.827 |    0.036 |   4 |
|  13 |  5.288e-03 |    1.007 |    0.042 |   5 |
|  14 |  5.270e-03 |    0.997 |    0.036 |   5 |
|  15 |  5.295e-03 |    1.005 |    0.036 |   5 |
|  16 |  5.280e-03 |    0.997 |    0.041 |   5 |
|  17 |  5.154e-03 |    0.976 |    0.048 |   5 |
|  18 |  5.190e-03 |    1.007 |    0.035 |   5 |
|  19 |  5.256e-03 |    1.013 |    0.022 |   3 |
|  20 |  5.356e-03 |    1.019 |    0.028 |   3 |
|  21 |  5.478e-03 |    1.023 |    0.023 |   3 |
|  22 |  5.613e-03 |    1.025 |    0.022 |   3 |
|  23 |  5.752e-03 |    1.025 |    0.024 |   3 |
|  24 |  5.891e-03 |    1.024 |    0.025 |   3 |
|  25 |  6.022e-03 |    1.022 |    0.033 |   4 |
|  26 |  6.143e-03 |    1.020 |    0.029 |   4 |
|  27 |  6.251e-03 |    1.018 |    0.030 |   4 |
|  28 |  6.343e-03 |    1.015 |    0.042 |   4 |
|  29 |  6.420e-03 |    1.012 |    0.031 |   4 |
|  30 |  6.479e-03 |    1.009 |    0.033 |   4 |
|  31 |  6.520e-03 |    1.006 |    0.036 |   4 |
|  32 |  6.542e-03 |    1.003 |    0.040 |   4 |
|  33 |  6.545e-03 |    1.001 |    0.030 |   4 |
|  34 |  6.530e-03 |    0.998 |    0.030 |   4 |
|  35 |  6.495e-03 |    0.995 |    0.030 |   4 |
|  36 |  6.442e-03 |    0.992 |    0.034 |   4 |
|  37 |  6.371e-03 |    0.989 |    0.029 |   4 |
|  38 |  6.283e-03 |    0.986 |    0.035 |   5 |
|  39 |  6.180e-03 |    0.984 |    0.036 |   5 |
|  40 |  6.062e-03 |    0.981 |    0.036 |   5 |
|  41 |  5.930e-03 |    0.978 |    0.043 |   5 |
|  42 |  5.786e-03 |    0.976 |    0.038 |   5 |
|  43 |  5.631e-03 |    0.973 |    0.038 |   5 |
|  44 |  5.465e-03 |    0.971 |    0.028 |   3 |
|  45 |  5.289e-03 |    0.968 |    0.030 |   3 |
|  46 |  5.105e-03 |    0.965 |    0.024 |   3 |
|  47 |  4.915e-03 |    0.963 |    0.024 |   3 |
|  48 |  4.719e-03 |    0.960 |    0.028 |   3 |
|  49 |  4.519e-03 |    0.958 |    0.030 |   3 |
|  50 |  4.317e-03 |    0.955 |    0.029 |   3 |
|  51 |  4.114e-03 |    0.953 |    0.023 |   3 |
|  52 |  3.911e-03 |    0.951 |    0.023 |   3 |
|  53 |  3.710e-03 |    0.949 |    0.023 |   3 |
|  54 |  3.512e-03 |    0.947 |    0.027 |   3 |
|  55 |  3.318e-03 |    0.945 |    0.030 |   3 |
|  56 |  3.128e-03 |    0.943 |    0.031 |   3 |
|  57 |  2.944e-03 |    0.941 |    0.023 |   3 |
|  58 |  2.765e-03 |    0.939 |    0.025 |   3 |
|  59 |  2.593e-03 |    0.938 |    0.031 |   3 |
|  60 |  2.429e-03 |    0.936 |    0.023 |   3 |
|  61 |  2.271e-03 |    0.935 |    0.026 |   3 |
|  62 |  2.121e-03 |    0.934 |    0.024 |   3 |
|  63 |  1.978e-03 |    0.933 |    0.029 |   3 |
|  64 |  1.843e-03 |    0.932 |    0.023 |   3 |
|  65 |  1.715e-03 |    0.931 |    0.029 |   3 |
|  66 |  1.595e-03 |    0.930 |    0.027 |   3 |
|  67 |  1.481e-03 |    0.929 |    0.027 |   3 |
|  68 |  1.375e-03 |    0.928 |    0.026 |   3 |
|  69 |  1.275e-03 |    0.928 |    0.026 |   3 |
|  70 |  1.182e-03 |    0.927 |    0.028 |   3 |
|  71 |  1.095e-03 |    0.926 |    0.024 |   3 |
|  72 |  1.014e-03 |    0.926 |    0.017 |   2 |
|  73 |  9.379e-04 |    0.925 |    0.017 |   2 |
|  74 |  8.674e-04 |    0.925 |    0.017 |   2 |
|  75 |  8.019e-04 |    0.924 |    0.021 |   2 |
|  76 |  7.410e-04 |    0.924 |    0.022 |   2 |
|  77 |  6.845e-04 |    0.924 |    0.017 |   2 |
|  78 |  6.321e-04 |    0.923 |    0.019 |   2 |
|  79 |  5.835e-04 |    0.923 |    0.020 |   2 |
|  80 |  5.386e-04 |    0.923 |    0.025 |   2 |
|  81 |  4.969e-04 |    0.923 |    0.028 |   2 |
|  82 |  4.584e-04 |    0.922 |    0.026 |   2 |
|  83 |  4.228e-04 |    0.922 |    0.018 |   2 |
|  84 |  3.899e-04 |    0.922 |    0.021 |   2 |
|  85 |  3.595e-04 |    0.922 |    0.017 |   2 |
|  86 |  3.314e-04 |    0.922 |    0.018 |   2 |
|  87 |  3.054e-04 |    0.922 |    0.028 |   2 |
|  88 |  2.815e-04 |    0.922 |    0.021 |   2 |
|  89 |  2.594e-04 |    0.921 |    0.017 |   2 |
|  90 |  2.390e-04 |    0.921 |    0.026 |   2 |
|  91 |  2.202e-04 |    0.921 |    0.020 |   2 |
|  92 |  2.029e-04 |    0.921 |    0.017 |   2 |
|  93 |  1.869e-04 |    0.921 |    0.018 |   2 |
|  94 |  1.721e-04 |    0.921 |    0.017 |   2 |
|  95 |  1.585e-04 |    0.921 |    0.017 |   2 |
|  96 |  1.460e-04 |    0.921 |    0.017 |   2 |
|  97 |  1.345e-04 |    0.921 |    0.022 |   2 |
|  98 |  1.238e-04 |    0.921 |    0.017 |   2 |
|  99 |  1.140e-04 |    0.921 |    0.018 |   2 |
| 100 |  1.050e-04 |    0.921 |    0.026 |   2 |
| 101 |  9.666e-05 |    0.921 |    0.022 |   2 |
| 102 |  8.900e-05 |    0.921 |    0.022 |   2 |
| 103 |  8.194e-05 |    0.921 |    0.019 |   2 |
| 104 |  7.544e-05 |    0.921 |    0.029 |   2 |
| 105 |  6.945e-05 |    0.921 |    0.020 |   2 |
| 106 |  6.394e-05 |    0.921 |    0.019 |   2 |
| 107 |  5.886e-05 |    0.921 |    0.019 |   2 |
| 108 |  5.419e-05 |    0.921 |    0.028 |   2 |
| 109 |  4.988e-05 |    0.921 |    0.020 |   2 |
| 110 |  4.592e-05 |    0.921 |    0.018 |   2 |
| 111 |  4.227e-05 |    0.921 |    0.020 |   2 |
| 112 |  3.891e-05 |    0.920 |    0.019 |   2 |
| 113 |  3.581e-05 |    0.920 |    0.018 |   2 |
| 114 |  3.296e-05 |    0.920 |    0.018 |   2 |
| 115 |  3.034e-05 |    0.920 |    0.018 |   2 |
| 116 |  2.793e-05 |    0.920 |    0.018 |   2 |
| 117 |  2.571e-05 |    0.920 |    0.018 |   2 |
| 118 |  2.366e-05 |    0.920 |    0.017 |   2 |
| 119 |  2.178e-05 |    0.920 |    0.017 |   2 |
| 120 |  2.004e-05 |    0.920 |    0.019 |   2 |
| 121 |  1.845e-05 |    0.920 |    0.012 |   1 |
| 122 |  1.698e-05 |    0.920 |    0.011 |   1 |
| 123 |  1.563e-05 |    0.920 |    0.012 |   1 |
| 124 |  1.438e-05 |    0.920 |    0.012 |   1 |
| 125 |  1.324e-05 |    0.920 |    0.010 |   1 |
| 126 |  1.218e-05 |    0.920 |    0.015 |   1 |
| 127 |  1.121e-05 |    0.920 |    0.011 |   1 |
| 128 |  1.032e-05 |    0.920 |    0.011 |   1 |
| 129 |  9.499e-06 |    0.920 |    0.010 |   1 |
| 130 |  8.742e-06 |    0.920 |    0.010 |   1 |
| 131 |  8.046e-06 |    0.920 |    0.011 |   1 |
| 132 |  7.405e-06 |    0.920 |    0.015 |   1 |
| 133 |  6.815e-06 |    0.920 |    0.010 |   1 |
| 134 |  6.272e-06 |    0.920 |    0.011 |   1 |
| 135 |  5.772e-06 |    0.920 |    0.012 |   1 |
| 136 |  5.313e-06 |    0.920 |    0.010 |   1 |
| 137 |  4.889e-06 |    0.920 |    0.010 |   1 |
| 138 |  4.500e-06 |    0.920 |    0.015 |   1 |
| 139 |  4.141e-06 |    0.920 |    0.012 |   1 |
| 140 |  3.811e-06 |    0.920 |    0.012 |   1 |
| 141 |  3.508e-06 |    0.920 |    0.016 |   1 |
| 142 |  3.228e-06 |    0.920 |    0.010 |   1 |
| 143 |  2.971e-06 |    0.920 |    0.011 |   1 |
| 144 |  2.734e-06 |    0.920 |    0.011 |   1 |
| 145 |  2.516e-06 |    0.920 |    0.014 |   1 |
| 146 |  2.316e-06 |    0.920 |    0.012 |   1 |
| 147 |  2.131e-06 |    0.920 |    0.010 |   1 |
| 148 |  1.961e-06 |    0.920 |    0.011 |   1 |
| 149 |  1.805e-06 |    0.920 |    0.010 |   1 |
| 150 |  1.661e-06 |    0.920 |    0.010 |   1 |
| 151 |  1.529e-06 |    0.920 |    0.013 |   1 |
| 152 |  1.407e-06 |    0.920 |    0.010 |   1 |
| 153 |  1.295e-06 |    0.920 |    0.011 |   1 |
| 154 |  1.192e-06 |    0.920 |    0.011 |   1 |
| 155 |  1.097e-06 |    0.920 |    0.011 |   1 |
| 156 |  1.009e-06 |    0.920 |    0.014 |   1 |
| 157 |  9.288e-07 |    0.920 |    0.012 |   1 |
------------------------------------------------
Elapsed: 4.452649354934692 seconds.
------------------------------------------------

in std out. That seems unintended, right?

albop commented 5 years ago

Thanks for the report. This is fixed in master, and, I think in the latest conda release. Can you tell me which version you are using ?

albop commented 5 years ago

OK. I didn't actually do the release. Should be there tomorrow.

pkofod commented 5 years ago

Cool! Thanks, I’ll update .