def key_81_CosSin_2009():
    r"""Key 81 pt CosSin filter, as published in [Key09]_.

    Taken from file ``FilterModules.f90`` provided with 1DCSEM_.

    License: `Apache License, Version 2.0,
    <http://www.apache.org/licenses/LICENSE-2.0>`_.

    """

    dlf = DigitalFilter('Key 81 CosSin (2009)', 'key_81_CosSin_2009')

    dlf.base = np.array([
        3.354626279025119e-04, 4.097349789797864e-04,  5.004514334406104e-04,
        6.112527611295723e-04, 7.465858083766792e-04,  9.118819655545162e-04,
        1.113775147844802e-03, 1.360368037547893e-03,  1.661557273173934e-03,
        2.029430636295734e-03, 2.478752176666358e-03,  3.027554745375813e-03,
        3.697863716482929e-03, 4.516580942612666e-03,  5.516564420760772e-03,
        6.737946999085467e-03, 8.229747049020023e-03,  1.005183574463358e-02,
        1.227733990306844e-02, 1.499557682047770e-02,  1.831563888873418e-02,
        2.237077185616559e-02, 2.732372244729256e-02,  3.337326996032607e-02,
        4.076220397836620e-02, 4.978706836786394e-02,  6.081006262521795e-02,
        7.427357821433388e-02, 9.071795328941247e-02,  1.108031583623339e-01,
        1.353352832366127e-01, 1.652988882215865e-01,  2.018965179946554e-01,
        2.465969639416064e-01, 3.011942119122020e-01,  3.678794411714423e-01,
        4.493289641172216e-01, 5.488116360940264e-01,  6.703200460356393e-01,
        8.187307530779818e-01, 1e0,  1.221402758160170e+00,
        1.491824697641270e+00, 1.822118800390509e+00,  2.225540928492468e+00,
        2.718281828459046e+00, 3.320116922736548e+00,  4.055199966844675e+00,
        4.953032424395115e+00, 6.049647464412947e+00,  7.389056098930650e+00,
        9.025013499434122e+00, 1.102317638064160e+01,  1.346373803500169e+01,
        1.644464677109706e+01, 2.008553692318767e+01,  2.453253019710935e+01,
        2.996410004739703e+01, 3.659823444367799e+01,  4.470118449330084e+01,
        5.459815003314424e+01, 6.668633104092515e+01,  8.145086866496814e+01,
        9.948431564193386e+01, 1.215104175187350e+02,  1.484131591025766e+02,
        1.812722418751512e+02, 2.214064162041872e+02,  2.704264074261528e+02,
        3.302995599096489e+02, 4.034287934927351e+02,  4.927490410932563e+02,
        6.018450378720822e+02, 7.350951892419732e+02,  8.978472916504184e+02,
        1.096633158428459e+03, 1.339430764394418e+03,  1.635984429995927e+03,
        1.998195895104119e+03, 2.440601977624501e+03,  2.980957987041728e+03])

    dlf.factor = np.array([1.2214027581601701])

    dlf.cos = np.array([
        1.746412733678043e-02, -7.658725022064888e-02, 1.761673907472465e-01,
        -2.840940679113589e-01,  3.680388960144733e-01, -4.115498161707958e-01,
        4.181209762362728e-01, -3.967204599348831e-01, 3.608829691008270e-01,
        -3.171870084102961e-01,  2.744932842186247e-01, -2.324673650676961e-01,
        1.971144816936984e-01, -1.634915360178986e-01, 1.381406405905393e-01,
        -1.125728533897677e-01,  9.619580319372194e-02, -7.640431432353632e-02,
        6.748891657821673e-02, -5.097864570224415e-02, 4.853609305288441e-02,
        -3.293272689265632e-02,  3.677175984620380e-02, -1.969323595300588e-02,
        3.053726798991684e-02, -9.301135480582538e-03, 2.895215492109734e-02,
        -1.875526095801418e-04,  3.181452657662026e-02, 9.025726238227111e-03,
        3.955376604096631e-02,  1.966766645672513e-02, 5.318782805621459e-02,
        3.300575875620110e-02,  7.409212944640006e-02, 4.972863917303501e-02,
        1.029344264288086e-01,  6.776855697600163e-02, 1.357865756912759e-01,
        7.511614666518443e-02,  1.522218287240260e-01, 3.034571997381229e-02,
        8.802563675323094e-02, -1.689255322598353e-01, -1.756581788680092e-01,
        -6.123863775740898e-01, -5.098359641153184e-01, -6.736869803920745e-01,
        4.599561125225532e-01,  8.907010262082216e-01, 1.039153770711999e+00,
        -2.178135931072732e+00,  8.040971159674268e-01, 5.659848584656202e-01,
        -9.349050336534268e-01,  8.006099486213468e-01, -5.944960111930493e-01,
        4.369614304892440e-01, -3.292566347310282e-01, 2.547426420681868e-01,
        -2.010899026277397e-01,  1.609467208423519e-01, -1.299975550484158e-01,
        1.056082501090365e-01, -8.608337452556068e-02, 7.027252107999236e-02,
        -5.735742622053085e-02,  4.673270108060494e-02, -3.793635725863799e-02,
        3.060786160620013e-02, -2.446220554726340e-02, 1.927399223200865e-02,
        -1.486843016804444e-02,  1.111747692371507e-02, -7.939442960305236e-03,
        5.298852472637883e-03, -3.200104589830043e-03, 1.665382777953919e-03,
        -6.913074254614758e-04,  1.999065225130592e-04,
        -2.955159288961187e-05])

    dlf.sin = np.array([
        7.478326513505658e-07, -2.572850425065560e-06, 5.225955618519281e-06,
        -7.352539610140040e-06,  8.768819961093828e-06, -8.560004370841340e-06,
        8.101932279460349e-06, -5.983552716117552e-06, 5.036792825138655e-06,
        -1.584355068233649e-06,  1.426050228179462e-06, 3.972863429067356e-06,
        -1.903788077376088e-06,  1.144652944379527e-05, -4.327773998196030e-06,
        2.297298998355334e-05, -4.391227697686659e-06, 4.291202395830839e-05,
        1.760279032167125e-06,  8.017887907026914e-05, 2.364651853689879e-05,
        1.535031685829202e-04,  8.375427119939347e-05, 3.030115685600468e-04,
        2.339455351760637e-04,  6.157392107422657e-04, 5.921808556382737e-04,
        1.281873037121434e-03,  1.424276189020714e-03, 2.718506171172064e-03,
        3.324504626808429e-03,  5.839859904586436e-03, 7.608663600764702e-03,
        1.263571470998938e-02,  1.714199295539484e-02, 2.735013970005427e-02,
        3.794840483226463e-02,  5.858519896601026e-02, 8.166914231915734e-02,
        1.215508018998907e-01,  1.658946642767184e-01, 2.324389477118542e-01,
        2.938956625118840e-01,  3.572525844816433e-01, 3.479235360502319e-01,
        2.294314115090992e-01, -1.250412450354792e-01, -6.340986743027450e-01,
        -9.703404081656508e-01, -2.734109755210948e-01, 1.321852608494946e+00,
        6.762199721133603e-01, -2.093257651144232e+00, 1.707842350925794e+00,
        -8.844618831465598e-01,  3.720792781726873e-01, -1.481509947473694e-01,
        6.124339615448667e-02, -2.726194382687923e-02, 1.307668436907975e-02,
        -6.682101544475918e-03,  3.599101395415812e-03, -2.030735143712865e-03,
        1.197624324158372e-03, -7.382202519234128e-04, 4.756906961407787e-04,
        -3.199977708080284e-04,  2.238628518300115e-04, -1.618377502708346e-04,
        1.199233854156409e-04, -9.025345928219504e-05, 6.830860296946832e-05,
        -5.143409372298764e-05,  3.804574823200909e-05, -2.720604959632104e-05,
        1.839913059679674e-05, -1.140157702141663e-05, 6.172802138985788e-06,
        -2.706562852604888e-06,  8.403636781016683e-07,
        -1.356300450956746e-07])

    return dlf
r"""Key 81 pt CosSin filter, as published in [Key09]_.

    Taken from file ``FilterModules.f90`` provided with 1DCSEM_.

    License: `Apache License, Version 2.0,
    <http://www.apache.org/licenses/LICENSE-2.0>`_.