root/library/tests/merger_2d_test.cpp @ 426

Revision 386, 1.5 kB (checked in by mido, 15 years ago)

possibly broken? 4th part

  • Property svn:eol-style set to native
Line 
1
2#include "stat/exp_family.h"
3#include "stat/merger.h"
4
5using namespace bdm;
6
7using namespace bdm;
8
9//These lines are needed for use of cout and endl
10using std::cout;
11using std::endl;
12
13int main() {
14
15        RNG_randomize();
16       
17        RV x ( "{x }","1" );
18        RV y ( "{y }","1" );
19
20        RV xy=x; xy.add(y);
21       
22        enorm<fsqmat> f1; f1.set_rv ( xy );
23        enorm<fsqmat> f2; f1.set_rv ( xy );
24               
25        mat R1 ( "0.5 0.48; 0.48 0.5" );
26        mat R2 ( "0.5 0; 0 0.1" );
27        f1.set_parameters ( "1 1", R1);
28        f2.set_parameters ( "1 1",mat ( "0.5 0; 0 0.1" ) );
29       
30        Array<mpdf* > A ( 2 );
31        mepdf A1(&f1);
32        mepdf A2(&f2);
33        A ( 0 ) =&A1;
34        A ( 1 ) =&A2;
35       
36        int Npoints=100;
37        mat x_grid(1,Npoints);
38        x_grid.set_row(0,linspace ( -2.0, 4.0, Npoints ));
39        mat y_grid(1,Npoints);
40        y_grid.set_row(0,linspace ( -2.0, 4.0, Npoints ));
41       
42        mat Grid (2,Npoints*Npoints);
43        Grid.set_submatrix ( 0,0, kron(x_grid,ones(1,Npoints)) );
44        Grid.set_submatrix ( 1,0, kron(ones(1,Npoints), y_grid) );
45       
46        merger_mix M ( A );
47        enorm<fsqmat> g0; g0.set_rv(xy);
48        g0.set_parameters(vec("1 1"),mat("10 0; 0 10"));
49       
50        M.set_parameters(1);
51        M.set_method(LOGNORMAL,1e8);
52        M.set_support(g0,400);
53        M.merge();
54       
55        MixEF &MM = M._Mix();
56        emix* MP = MM.epredictor(); //xy
57       
58        vec Res1 = M.evallog_m(Grid);
59        mat Res2 = (MP)->evallog_M(Grid);
60       
61        it_file it("merger_2d_test.it");
62        it << Name("Npoints") << Npoints;
63        it << Name("Grid") << Grid;
64        it << Name("Res1") << Res1;
65        it << Name("Res2") << Res2;
66        it << Name("S1") << f1.evallog_m(Grid);
67        it << Name("S2") << f2.evallog_m(Grid);
68        cout << ((enorm<ldmat>*)(MP->_Coms(0)))->_R().to_mat() << endl;
69}
Note: See TracBrowser for help on using the browser.