function [H, HI, D1, D2, e_1, e_m, M, Q, S_1, S_m] = d2_12(m,h)

% D2 = D1*D1, wide!

BP = 15;
if(m<2*BP)
    error(['Operator requires at least ' num2str(2*BP) ' grid points']);
end

H=speye(m,m);
H(1:15,1:15)=diag([2.880607858916397e-01,...
    1.560376162339675e+00,...
    2.403139445479289e-01,...
    1.531292896754208e+00,...
    1.245107365551116e+00,...
    2.403139445479289e-01,...
    1.218498444843265e+00,...
    1.730095305997005e+00,...
    2.403139445479289e-01,...
    8.526541262207157e-01,...
    1.839467231356713e+00,...
    2.403139445479289e-01,...
    1.350211172437031e+00,...
    9.139950953929686e-01,...
    1.008985635023947e+00]);

H(m-14:m,m-14:m)=rot90(H(1:15,1:15),2);

H=H*h;
HI = inv(H);

diags   = -6:6;
stencil = [1/5544,-1/385,1/56,-5/63,15/56,-6/7,0,6/7,-15/56,5/63,-1/56,1/385,-1/5544];
D1 = stripeMatrix(stencil, diags, m);


D1(1,     1)=    -1.735744761135539e+00;
D1(1  ,   2 )=   2.307154400697361e+00;
D1(1,     3)=    -8.049541548921420e-02;
D1(1 ,    4)=    -5.054323197649326e-01;
D1(1 ,   5 )=   -2.276940626773821e-01;
D1(1 ,    6 )=   -4.332046513157440e-03;
D1(1 ,    7 )=   1.922516500571120e-01;
D1(1 ,    8 )=   1.841426475531248e-01;
D1(1 ,    9 )=   4.299540500353117e-02;
D1(1 ,   10 )=   -8.425321510779284e-02;
D1(1 ,   11 )=   -1.783432239793461e-01;
D1(1 ,   12 )=   -9.098340284317097e-02;
D1(1 ,   13 )=   2.989603414709966e-01;
D1(1 ,   14 )=   -1.262666707971657e-01;
D1(1 ,   15 )=   8.040673525575449e-03;
D1(2 ,    1 )=   -4.259233932680148e-01;
D1(2 ,    3  )=  1.077970170802666e-01;
D1(2 ,    4  )=  3.305658398446859e-01;
D1(2 ,    5 )=   1.023936809322525e-01;
D1(2 ,    6  )=  1.004615991085861e-02;
D1(2 ,    7  )=  -9.993439452786020e-02;
D1(2 ,    8  )=  -8.071677622127596e-02;
D1(2 ,    9  )=  -2.794842118590027e-02;
D1(2 ,   10  )=  4.202296437592187e-02;
D1(2 ,   11 )=   8.084986053360355e-02;
D1(2 ,   12 )=   4.970793893896007e-02;
D1(2 ,   13 )=   -1.480838886705940e-01;
D1(2  ,  14  )=  6.449962737470759e-02;
D1(2  ,  15 )=   -5.276215117611654e-03;
D1(3  ,   1  )=  9.648866897889277e-02;
D1(3  ,   2  )=  -6.999339806925928e-01;
D1(3  ,   4  )=  6.447106132171313e-01;
D1(3  ,   5  )=  1.610341017868972e-01;
D1(3  ,   6  )=  -2.926101271261580e-01;
D1(3  ,   7  )=  2.578035970538076e-02;
D1(3  ,   8  )=  -3.649479605631123e-02;
D1(3  ,   9  )=  2.039707558852247e-01;
D1(3  ,  10  )=  -2.443704472345096e-02;
D1(3  ,  11  )=  -4.983260374057472e-02;
D1(3  ,  12  )=  -1.982796172639611e-01;
D1(3  ,  13  )=  2.659121147554237e-01;
D1(3  ,  14  )=  -1.104398155224152e-01;
D1(3  ,  15  )=  1.413137079651327e-02;
D1(4  ,   1  )=  9.507993640872410e-02;
D1(4  ,   2  )=  -3.368441515472113e-01;
D1(4  ,   3  )=  -1.011778679849722e-01;
D1(4  ,   5  )=  1.664700006607916e-01;
D1(4  ,   6  )=  8.420689674052668e-02;
D1(4  ,   7  )=  1.234483107384551e-01;
D1(4  ,   8  )=  3.371285340885326e-02;
D1(4  ,   9  )=  -2.009043511216467e-02;
D1(4  ,  10  )=  -4.311340633236862e-02;
D1(4  ,  11  )=  -3.824719371220764e-02;
D1(4  ,  12  )=  -2.775022659375772e-03;
D1(4  ,  13  )=  8.248678009703486e-02;
D1(4  ,  14  )=  -5.169933586327551e-02;
D1(4  ,  15  )=  8.542635157189999e-03;
D1(5  ,   1  )=  5.267797175762052e-02;
D1(5  ,   2  )=  -1.283203869171410e-01;
D1(5   ,  3  )=  -3.108064515385221e-02;
D1(5  ,   4  )=  -2.047328098663259e-01;
D1(5  ,   6  )=  1.528377576445926e-02;
D1(5  ,   7  )=  1.842140733907868e-01;
D1(5  ,   8  )=  1.776491663357457e-01;
D1(5  ,   9  )=  4.220032524144508e-02;
D1(5  ,  10  )=  -3.611067700750285e-02;
D1(5  ,  11  )=  -1.090730089234403e-01;
D1(5  ,  12  )=  -5.398262792345335e-02;
D1(5  ,  13  )=  1.325672256468355e-01;
D1(5  ,  14  )=  -3.865175590539601e-02;
D1(5  ,  15  )=  -2.640626439781275e-03;
D1(6  ,   1 )=   5.192760351242898e-03;
D1(6  ,   2  )=  -6.523045708997477e-02;
D1(6  ,   3  )=  2.926101271261579e-01;
D1(6  ,   4  )=  -5.365707057867646e-01;
D1(6  ,   5  )=  -7.918783828195401e-02;
D1(6  ,   7  )=  1.455199260610844e-01;
D1(6  ,   8  )=  4.392627009892030e-01;
D1(6  ,   9  )=  -2.877704902282471e-01;
D1(6  ,  10  )=  6.246304940524665e-02;
D1(6  ,  11  )=  -8.757523368284212e-03;
D1(6  ,  12  )=  2.373907173856874e-01;
D1(6  ,  13  )=  -3.887671913712637e-01;
D1(6  ,  14  )=  2.338336212010801e-01;
D1(6  ,  15  )=  -4.998869639321427e-02;
D1( 7 ,    1 )=   -4.544951340626429e-02;
D1( 7 ,    2 )=   1.279732835762292e-01;
D1( 7 ,    3 )=   -5.084438112238577e-03;
D1( 7 ,    4 )=   -1.551380899582667e-01;
D1( 7 ,    5  )=  -1.882368423100825e-01;
D1( 7 ,    6  )=  -2.869964060279157e-02;
D1( 7  ,   8  )=  1.501531969717210e-01;
D1( 7 ,    9  )=  4.398683557974375e-02;
D1( 7  ,  10  )=  9.034991722085359e-02;
D1( 7 ,   11  )=  6.874263504449905e-02;
D1( 7 ,   12  )=  1.191424140454980e-02;
D1( 7 ,   13  )=  -1.387149470006835e-01;
D1( 7,    14  )=  8.081158783540948e-02;
D1( 7 ,   15  )=  -1.260822624267884e-02;
D1( 8 ,    1  )=  -3.065974203065793e-02;
D1( 8  ,   2  )=  7.279861004189266e-02;
D1( 8  ,   3  )=  5.069205358435631e-03;
D1( 8  ,   4  )=  -2.983896481040582e-02;
D1( 8  ,   5  )=  -1.278497691554543e-01;
D1( 8  ,   6  )=  -6.101453024095747e-02;
D1( 8  ,   7  )=  -1.057522301598588e-01;
D1( 8  ,   9  )=  3.518098475279482e-02;
D1( 8  ,  10 )=   1.267951379582364e-01;
D1( 8  ,  11  )=  1.709119775233402e-01;
D1( 8  ,  12 )=   4.871305182138817e-02;
D1( 8  ,  13 )=   -1.381315738947210e-01;
D1( 8  ,  14 )=   2.531339542383916e-02;
D1( 8  ,  15 )=   8.464447412128264e-03;
D1( 9  ,   1  )=  -5.153795872455654e-02;
D1( 9  ,   2  )=  1.814711596347261e-01;
D1( 9  ,   3  )=  -2.039707558852247e-01;
D1( 9  ,   4 )=   1.280172927036423e-01;
D1( 9  ,   5 )=   -2.186470530689342e-01;
D1( 9  ,   6 )=   2.877704902282471e-01;
D1( 9  ,   7 )=   -2.230327950727989e-01;
D1( 9  ,   8 )=   -2.532789210200124e-01;
D1( 9  ,  10 )=   -2.487018120584765e-02;
D1( 9  ,  11 )=   5.656432879788119e-01;
D1( 9  ,  12 )=   -3.179024054582303e-01;
D1( 9  ,  13 )=   3.080272260545759e-01;
D1( 9  ,  14 )=   -2.449533574878925e-01;
D1( 9  ,  15 )=   6.726397132349360e-02;
D1(10  ,   1 )=   2.846411764336633e-02;
D1(10  ,   2 )=   -7.690296670899374e-02;
D1(10  ,   3 )=   6.887391299700927e-03;
D1(10  ,   4 )=   7.742794040563218e-02;
D1(10  ,   5 )=   5.273142829480713e-02;
D1(10  ,   6 )=   -1.760472544430208e-02;
D1(10  ,   7 )=   -1.291159336943500e-01;
D1(10  ,   8  )=  -2.572762697778848e-01;
D1(10  ,   9  )=  7.009467453925059e-03;
D1(10  ,  11  )=  1.983435406810274e-01;
D1(10  ,  12  )=  -3.844771590180474e-02;
D1(10  ,  13  )=  2.943472385247488e-01;
D1(10  ,  14  )=  -1.771193581329739e-01;
D1(10  ,  15  )=  3.146739090039766e-02;
D1(10  ,  16  )=  -2.115455432962849e-04;
D1(11  ,   1  )=  2.792856995883971e-02;
D1(11  ,   2  )=  -6.858300759838749e-02;
D1(11  ,   3  )=  6.510292419375574e-03;
D1(11  ,   4  )=  3.183946691406334e-02;
D1(11  ,   5  )=  7.382985925399284e-02;
D1(11  ,   6  )=  1.144111158506918e-03;
D1(11  ,   7  )=  -4.553644254612264e-02;
D1(11  ,   8  )=  -1.607498111470597e-01;
D1(11  ,   9  )=  -7.389746738841917e-02;
D1(11  ,  10  )=  -9.193881548309495e-02;
D1(11  ,  12  )=  4.858403641270599e-02;
D1(11  ,  13  )=  2.953396945760745e-01;
D1(11  ,  14  )=  -1.897059300798801e-02;
D1(11  ,  15  )=  -2.681387584075025e-02;
D1(11  ,  16  )=  1.412040700223218e-03;
D1(11  ,  17  )=  -9.805838195994568e-05;
D1(12  ,   1  )=  1.090604649488924e-01;
D1(12  ,   2  )=  -3.227573129195589e-01;
D1(12  ,   3  )=  1.982796172639611e-01;
D1(12  ,   4  )=  1.768258806049677e-02;
D1(12  ,   5  )=  2.796931645632894e-01;
D1(12  ,   6  )=  -2.373907173856874e-01;
D1(12  ,   7  )=  -6.041049615427440e-02;
D1(12  ,   8  )=  -3.507005074362792e-01;
D1(12  ,   9  )=  3.179024054582303e-01;
D1(12  ,  10  )=  1.364157359619944e-01;
D1(12  ,  11  )=  -3.718833008893085e-01;
D1(12  ,  13  )=  -1.473587211078091e-01;
D1(12  ,  14  )=  5.107219886498376e-01;
D1(12  ,  15  )=  -1.500513994956780e-02;
D1(12  ,  16  )=  -7.430756001585824e-02;
D1(12  ,  17  )=  1.080837236594302e-02;
D1(12  ,  18  )=  -7.505814143015984e-04;
D1(13  ,   1   )= -6.378169035524298e-02;
D1(13  ,   2   )= 1.711336527390002e-01;
D1(13  ,   3  )=  -4.732769992164881e-02;
D1(13  ,   4  )=  -9.354938176872968e-02;
D1(13  ,   5  )=  -1.222478620034153e-01;
D1(13  ,   6  )=  6.919375218960795e-02;
D1(13  ,   7  )=  1.251833421669687e-01;
D1(13  ,   8  )=  1.769951193441043e-01;
D1(13  ,   9  )=  -5.482345223653074e-02;
D1(13  ,  10  )=  -1.858793591648383e-01;
D1(13  ,  11  )=  -4.023575729350775e-01;
D1(13  ,  12  )=  2.622727189335804e-02;
D1(13  ,  14  )=  4.511356466215911e-01;
D1(13  ,  15  )=  -9.724618589400275e-02;
D1(13  ,  16  )=  5.877975311212341e-02;
D1(13  ,  17  )=  -1.322544445022777e-02;
D1(13  ,  18  )=  1.923701010942221e-03;
D1(13  ,  19  )=  -1.335903479820987e-04;
D1(14   ,  1  )=  3.979504551511218e-02;
D1(14  ,   2  )=  -1.101140274631495e-01;
D1(14  ,   3  )=  2.903760407152547e-02;
D1(14  ,   4  )=  8.661624791356937e-02;
D1(14  ,   5  )=  5.265409651744463e-02;
D1(14  ,   6  )=  -6.148116129069339e-02;
D1(14  ,   7  )=  -1.077344885099467e-01;
D1(14  ,   8  )=  -4.791555974685060e-02;
D1(14  ,   9  )=  6.440483965930399e-02;
D1(14  ,  10  )=  1.652323434850750e-01;
D1(14  ,  11  )=  3.817939983867793e-02;
D1(14  ,  12  )=  -1.342825757801646e-01;
D1(14  ,  13  )=  -6.664460164211102e-01;
D1(14  ,  15  )=  8.751759953804069e-01;
D1(14  ,  16  )=  -2.930619039503475e-01;
D1(14  ,  17  )=  8.683315672602888e-02;
D1(14  ,  18  )=  -1.953746026335650e-02;
D1(14  ,  19  )=  2.841812401942763e-03;
D1(14  ,  20  )=  -1.973480834682474e-04;
D1(15  ,   1  )=  -2.295575530984041e-03;
D1(15  ,   2  )=  8.159561455701054e-03;
D1(15  ,   3  )=  -3.365722305748102e-03;
D1(15  ,   4  )=  -1.296477975670818e-02;
D1(15  ,   5  )=  3.258582992375954e-03;
D1(15  ,   6  )=  1.190599786168119e-02;
D1(15  ,   7  )=  1.522628621820923e-02;
D1(15  ,   8  )=  -1.451388426876270e-02;
D1(15  ,   9  )=  -1.602051576712872e-02;
D1(15  ,  10  )=  -2.659185598017704e-02;
D1(15  ,  11  )=  4.888399224192811e-02;
D1(15  ,  12  )=  3.573831226733737e-03;
D1(15  ,  13  )=  1.301335540499094e-01;
D1(15  ,  14  )=  -7.927829095053140e-01;
D1(15  ,  16  )=  8.495094750506673e-01;
D1(15  ,  17  )=  -2.654717109533336e-01;
D1(15  ,  18  )=  7.865828472691364e-02;
D1(15  ,  19  )=  -1.769811406355557e-02;
D1(15  ,  20  )=  2.574271136517173e-03;
D1(15  ,  21  )=  -1.787688289248037e-04;


D1(m-14:m,m-20:m)=rot90( -D1(1:15,1:21),2);
D1=D1/h;


% Wide 2nd derivative

D2=D1*D1;

e_1 = sparse(m,1);
e_1(1)= 1;
e_m = sparse(m,1);
e_m(end)= 1;

S_1 = (e_1'*D1)';
S_m = (e_m'*D1)';

Q = H*D1-(-(e_1*e_1') + (e_m*e_m'));
M = -(H*D2-(-e_1*S_1' + e_m*S_m'));
end