# -*- coding: utf-8 -*-
from __future__ import division, print_function, absolute_import
import numpy as np
from collections import OrderedDict

__all__ = ["get_standard_influence_line"]



INFLUENCE_LINES = OrderedDict()

INFLUENCE_LINES[1] = np.array(
      [1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
       1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
       1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
       1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
       1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
       1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])

INFLUENCE_LINES[2] = np.array(
      [ 2.11516271e-16,  2.00000000e-02,  4.00000000e-02,  6.00000000e-02,
        8.00000001e-02,  1.00000000e-01,  1.20000000e-01,  1.40000000e-01,
        1.60000000e-01,  1.80000000e-01,  2.00000000e-01,  2.20000000e-01,
        2.40000000e-01,  2.60000000e-01,  2.80000000e-01,  3.00000000e-01,
        3.20000000e-01,  3.40000000e-01,  3.60000000e-01,  3.80000000e-01,
        4.00000000e-01,  4.20000000e-01,  4.40000000e-01,  4.60000000e-01,
        4.80000000e-01,  5.00000000e-01,  5.20000000e-01,  5.40000000e-01,
        5.60000000e-01,  5.80000000e-01,  6.00000000e-01,  6.20000000e-01,
        6.40000000e-01,  6.60000000e-01,  6.80000000e-01,  7.00000000e-01,
        7.20000000e-01,  7.40000000e-01,  7.60000000e-01,  7.80000000e-01,
        8.00000000e-01,  8.20000000e-01,  8.40000000e-01,  8.60000000e-01,
        8.80000000e-01,  9.00000000e-01,  9.20000000e-01,  9.40000000e-01,
        9.60000000e-01,  9.80000000e-01,  1.00000000e+00,  9.80000000e-01,
        9.60000000e-01,  9.40000000e-01,  9.20000000e-01,  9.00000000e-01,
        8.80000000e-01,  8.60000000e-01,  8.40000000e-01,  8.20000000e-01,
        8.00000000e-01,  7.80000000e-01,  7.60000000e-01,  7.40000000e-01,
        7.20000000e-01,  7.00000000e-01,  6.80000000e-01,  6.60000000e-01,
        6.40000000e-01,  6.20000000e-01,  6.00000000e-01,  5.80000000e-01,
        5.60000000e-01,  5.40000000e-01,  5.20000000e-01,  5.00000000e-01,
        4.80000000e-01,  4.60000000e-01,  4.40000000e-01,  4.20000000e-01,
        4.00000000e-01,  3.80000000e-01,  3.60000000e-01,  3.40000000e-01,
        3.20000000e-01,  3.00000000e-01,  2.80000000e-01,  2.60000000e-01,
        2.40000000e-01,  2.20000000e-01,  2.00000000e-01,  1.80000000e-01,
        1.60000000e-01,  1.40000000e-01,  1.20000000e-01,  1.00000000e-01,
        8.00000000e-02,  6.00000000e-02,  4.00000000e-02,  2.00000000e-02,
       -0.00000000e+00])

INFLUENCE_LINES[3] = np.array(
      [ 1.78750935e-16,  2.00000000e-02,  4.00000000e-02,  6.00000000e-02,
        8.00000000e-02,  1.00000000e-01,  1.20000000e-01,  1.40000000e-01,
        1.60000000e-01,  1.80000000e-01,  2.00000000e-01,  2.20000000e-01,
        2.40000000e-01,  2.60000000e-01,  2.80000000e-01,  3.00000000e-01,
        3.20000000e-01,  3.40000000e-01,  3.60000000e-01,  3.80000000e-01,
        4.00000000e-01,  4.20000000e-01,  4.40000000e-01,  4.60000000e-01,
        4.80000000e-01,  5.00000000e-01,  5.20000000e-01,  5.40000000e-01,
        5.60000000e-01,  5.80000000e-01,  6.00000000e-01,  6.20000000e-01,
        6.40000000e-01,  6.60000000e-01,  6.80000000e-01,  7.00000000e-01,
        7.20000000e-01,  7.40000000e-01,  7.60000000e-01,  7.80000000e-01,
        8.00000000e-01,  8.20000000e-01,  8.40000000e-01,  8.60000000e-01,
        8.80000000e-01,  9.00000000e-01,  9.20000000e-01,  9.40000000e-01,
        9.60000000e-01,  9.79999999e-01,  1.00000000e+00, -9.79999998e-01,
       -9.59999998e-01, -9.39999998e-01, -9.19999998e-01, -8.99999998e-01,
       -8.79999998e-01, -8.59999998e-01, -8.39999998e-01, -8.19999999e-01,
       -7.99999999e-01, -7.79999999e-01, -7.59999999e-01, -7.39999999e-01,
       -7.19999999e-01, -6.99999998e-01, -6.79999999e-01, -6.59999999e-01,
       -6.39999999e-01, -6.19999999e-01, -5.99999999e-01, -5.79999999e-01,
       -5.59999999e-01, -5.39999999e-01, -5.19999999e-01, -4.99999999e-01,
       -4.79999999e-01, -4.59999999e-01, -4.39999999e-01, -4.19999999e-01,
       -3.99999999e-01, -3.79999999e-01, -3.59999999e-01, -3.39999999e-01,
       -3.19999999e-01, -2.99999999e-01, -2.79999999e-01, -2.59999999e-01,
       -2.40000000e-01, -2.20000000e-01, -2.00000000e-01, -1.80000000e-01,
       -1.60000000e-01, -1.40000000e-01, -1.20000000e-01, -9.99999998e-02,
       -7.99999999e-02, -5.99999999e-02, -3.99999999e-02, -2.00000000e-02,
        0.00000000e+00])

INFLUENCE_LINES[4] = np.array(
      [3.77941116e-16, 4.00000000e-04, 1.60000000e-03, 3.60000000e-03,
       6.40000001e-03, 1.00000000e-02, 1.44000000e-02, 1.96000000e-02,
       2.56000000e-02, 3.24000000e-02, 4.00000000e-02, 4.84000000e-02,
       5.76000000e-02, 6.76000000e-02, 7.84000000e-02, 9.00000000e-02,
       1.02400000e-01, 1.15600000e-01, 1.29600000e-01, 1.44400000e-01,
       1.60000000e-01, 1.76400000e-01, 1.93600000e-01, 2.11600000e-01,
       2.30400000e-01, 2.50000000e-01, 2.70400000e-01, 2.91600000e-01,
       3.13600000e-01, 3.36400000e-01, 3.60000000e-01, 3.84400000e-01,
       4.09600000e-01, 4.35600000e-01, 4.62400000e-01, 4.90000000e-01,
       5.18400000e-01, 5.47600000e-01, 5.77600000e-01, 6.08400000e-01,
       6.40000000e-01, 6.72400000e-01, 7.05600000e-01, 7.39600000e-01,
       7.74400000e-01, 8.10000000e-01, 8.46400000e-01, 8.83600000e-01,
       9.21600000e-01, 9.60400000e-01, 1.00000000e+00, 9.60400000e-01,
       9.21600000e-01, 8.83600000e-01, 8.46400000e-01, 8.10000000e-01,
       7.74400000e-01, 7.39600000e-01, 7.05600000e-01, 6.72400000e-01,
       6.40000000e-01, 6.08400000e-01, 5.77600000e-01, 5.47600000e-01,
       5.18400000e-01, 4.90000000e-01, 4.62400000e-01, 4.35600000e-01,
       4.09600000e-01, 3.84400000e-01, 3.60000000e-01, 3.36400000e-01,
       3.13600000e-01, 2.91600000e-01, 2.70400000e-01, 2.50000000e-01,
       2.30400000e-01, 2.11600000e-01, 1.93600000e-01, 1.76400000e-01,
       1.60000000e-01, 1.44400000e-01, 1.29600000e-01, 1.15600000e-01,
       1.02400000e-01, 9.00000000e-02, 7.84000000e-02, 6.76000000e-02,
       5.76000000e-02, 4.84000000e-02, 4.00000000e-02, 3.24000000e-02,
       2.56000000e-02, 1.96000000e-02, 1.44000000e-02, 1.00000000e-02,
       6.40000000e-03, 3.60000000e-03, 1.60000000e-03, 4.00000000e-04,
       3.26609043e-17])

INFLUENCE_LINES[5] = np.array(
      [ 8.30491970e-16,  6.61617287e-02,  1.29663757e-01,  1.90546589e-01,
        2.48850726e-01,  3.04616672e-01,  3.57884931e-01,  4.08696004e-01,
        4.57090396e-01,  5.03108609e-01,  5.46791146e-01,  5.88178510e-01,
        6.27311205e-01,  6.64229733e-01,  6.98974598e-01,  7.31586302e-01,
        7.62105348e-01,  7.90572241e-01,  8.17027481e-01,  8.41511574e-01,
        8.64065021e-01,  8.84728326e-01,  9.03541992e-01,  9.20546521e-01,
        9.35782418e-01,  9.49290184e-01,  9.61110324e-01,  9.71283339e-01,
        9.79849734e-01,  9.86850010e-01,  9.92324672e-01,  9.96314223e-01,
        9.98859164e-01,  1.00000000e+00,  9.99777233e-01,  9.98231367e-01,
        9.95402904e-01,  9.91332348e-01,  9.86060201e-01,  9.79626967e-01,
        9.72073148e-01,  9.63439249e-01,  9.53765771e-01,  9.43093218e-01,
        9.31462093e-01,  9.18912898e-01,  9.05486138e-01,  8.91222314e-01,
        8.76161931e-01,  8.60345491e-01,  8.43813497e-01,  8.26606452e-01,
        8.08764860e-01,  7.90329222e-01,  7.71340043e-01,  7.51837826e-01,
        7.31863073e-01,  7.11456287e-01,  6.90657972e-01,  6.69508630e-01,
        6.48048766e-01,  6.26318880e-01,  6.04359478e-01,  5.82211061e-01,
        5.59914133e-01,  5.37509198e-01,  5.15036756e-01,  4.92537313e-01,
        4.70051371e-01,  4.47619433e-01,  4.25282002e-01,  4.03079582e-01,
        3.81052674e-01,  3.59241783e-01,  3.37687411e-01,  3.16430061e-01,
        2.95510237e-01,  2.74968441e-01,  2.54845177e-01,  2.35180947e-01,
        2.16016255e-01,  1.97391604e-01,  1.79347496e-01,  1.61924435e-01,
        1.45162923e-01,  1.29103465e-01,  1.13786562e-01,  9.92527188e-02,
        8.55424371e-02,  7.26962204e-02,  6.07545718e-02,  4.97579943e-02,
        3.97469910e-02,  3.07620648e-02,  2.28437190e-02,  1.60324564e-02,
        1.03687802e-02,  5.89319346e-03,  2.64619913e-03,  6.68300289e-04,
       -2.75597120e-17])

INFLUENCE_LINES[6] = np.array(
      [ 7.35243304e-16,  3.69280000e-02,  7.38855385e-02,  1.10902154e-01,
        1.48007385e-01,  1.85230769e-01,  2.22601846e-01,  2.60150154e-01,
        2.97905231e-01,  3.35896615e-01,  3.74153846e-01,  4.12706462e-01,
        4.51584000e-01,  4.90816000e-01,  5.30432000e-01,  5.70461538e-01,
        6.10934154e-01,  6.51879385e-01,  6.93326769e-01,  7.35305846e-01,
        7.77846154e-01,  8.20977231e-01,  8.64728615e-01,  9.09129846e-01,
        9.54210462e-01,  1.00000000e+00,  9.48066462e-01,  8.96900923e-01,
        8.46532923e-01,  7.96992000e-01,  7.48307692e-01,  7.00509538e-01,
        6.53627077e-01,  6.07689846e-01,  5.62727385e-01,  5.18769231e-01,
        4.75844923e-01,  4.33984000e-01,  3.93216000e-01,  3.53570462e-01,
        3.15076923e-01,  2.77764923e-01,  2.41664000e-01,  2.06803692e-01,
        1.73213538e-01,  1.40923077e-01,  1.09961846e-01,  8.03593846e-02,
        5.21452308e-02,  2.53489231e-02,  8.17124149e-16, -2.38818462e-02,
       -4.63163077e-02, -6.73329231e-02, -8.69612308e-02, -1.05230769e-01,
       -1.22171077e-01, -1.37811692e-01, -1.52182154e-01, -1.65312000e-01,
       -1.77230769e-01, -1.87968000e-01, -1.97553231e-01, -2.06016000e-01,
       -2.13385846e-01, -2.19692308e-01, -2.24964923e-01, -2.29233231e-01,
       -2.32526769e-01, -2.34875077e-01, -2.36307692e-01, -2.36854154e-01,
       -2.36544000e-01, -2.35406769e-01, -2.33472000e-01, -2.30769231e-01,
       -2.27328000e-01, -2.23177846e-01, -2.18348308e-01, -2.12868923e-01,
       -2.06769231e-01, -2.00078769e-01, -1.92827077e-01, -1.85043692e-01,
       -1.76758154e-01, -1.68000000e-01, -1.58798769e-01, -1.49184000e-01,
       -1.39185231e-01, -1.28832000e-01, -1.18153846e-01, -1.07180308e-01,
       -9.59409231e-02, -8.44652308e-02, -7.27827692e-02, -6.09230769e-02,
       -4.89156923e-02, -3.67901538e-02, -2.45760000e-02, -1.23027692e-02,
       -1.62759869e-24])

INFLUENCE_LINES[7] = np.array(
      [-1.14227598e-15,  5.19423832e-02,  1.03760055e-01,  1.55328303e-01,
        2.06522417e-01,  2.57217684e-01,  3.07289393e-01,  3.56612833e-01,
        4.05063291e-01,  4.52516057e-01,  4.98846418e-01,  5.43929663e-01,
        5.87641080e-01,  6.29855958e-01,  6.70449585e-01,  7.09297250e-01,
        7.46274241e-01,  7.81255846e-01,  8.14117354e-01,  8.44734053e-01,
        8.72981231e-01,  8.98734177e-01,  9.21868180e-01,  9.42258527e-01,
        9.59780508e-01,  9.74309410e-01,  9.85720521e-01,  9.93889131e-01,
        9.98690528e-01,  1.00000000e+00,  9.97692835e-01,  9.91644322e-01,
        9.81729750e-01,  9.67824406e-01,  9.49803579e-01,  9.27542558e-01,
        9.00916630e-01,  8.69801085e-01,  8.34071210e-01,  7.93602295e-01,
        7.48269626e-01,  6.97948494e-01,  6.42514186e-01,  5.81841990e-01,
        5.15807196e-01,  4.44285091e-01,  3.67150963e-01,  2.84280102e-01,
        1.95547796e-01,  1.00829332e-01, -3.95758244e-15,  1.00829332e-01,
        1.95547796e-01,  2.84280102e-01,  3.67150963e-01,  4.44285091e-01,
        5.15807196e-01,  5.81841990e-01,  6.42514186e-01,  6.97948494e-01,
        7.48269626e-01,  7.93602295e-01,  8.34071210e-01,  8.69801085e-01,
        9.00916630e-01,  9.27542558e-01,  9.49803579e-01,  9.67824406e-01,
        9.81729750e-01,  9.91644323e-01,  9.97692835e-01,  1.00000000e+00,
        9.98690528e-01,  9.93889131e-01,  9.85720521e-01,  9.74309410e-01,
        9.59780507e-01,  9.42258527e-01,  9.21868180e-01,  8.98734177e-01,
        8.72981231e-01,  8.44734053e-01,  8.14117354e-01,  7.81255846e-01,
        7.46274241e-01,  7.09297250e-01,  6.70449585e-01,  6.29855958e-01,
        5.87641080e-01,  5.43929663e-01,  4.98846418e-01,  4.52516057e-01,
        4.05063291e-01,  3.56612833e-01,  3.07289393e-01,  2.57217684e-01,
        2.06522417e-01,  1.55328303e-01,  1.03760055e-01,  5.19423832e-02,
        9.68656345e-24])

INFLUENCE_LINES[8] = np.array(
      [ 4.15163724e-16, -1.65760166e-02, -3.30606213e-02, -4.93624023e-02,
       -6.53899477e-02, -8.10518458e-02, -9.62566845e-02, -1.10913052e-01,
       -1.24929537e-01, -1.38214726e-01, -1.50677210e-01, -1.62225574e-01,
       -1.72768408e-01, -1.82214300e-01, -1.90471838e-01, -1.97449609e-01,
       -2.03056203e-01, -2.07200207e-01, -2.09790210e-01, -2.10734799e-01,
       -2.09942563e-01, -2.07322090e-01, -2.02781967e-01, -1.96230784e-01,
       -1.87577129e-01, -1.76729588e-01, -1.63596752e-01, -1.48087207e-01,
       -1.30109542e-01, -1.09572345e-01, -8.63842040e-02, -6.04537075e-02,
       -3.16894435e-02, -4.23318804e-15,  3.46907994e-02,  7.23981900e-02,
        1.13122172e-01,  1.56862745e-01,  2.03619910e-01,  2.53393665e-01,
        3.06184012e-01,  3.61990950e-01,  4.20814480e-01,  4.82654600e-01,
        5.47511312e-01,  6.15384615e-01,  6.86274510e-01,  7.60180995e-01,
        8.37104072e-01,  9.17043741e-01,  1.00000000e+00,  9.17043741e-01,
        8.37104072e-01,  7.60180995e-01,  6.86274510e-01,  6.15384615e-01,
        5.47511312e-01,  4.82654600e-01,  4.20814480e-01,  3.61990950e-01,
        3.06184012e-01,  2.53393665e-01,  2.03619909e-01,  1.56862745e-01,
        1.13122172e-01,  7.23981900e-02,  3.46907994e-02, -1.58135417e-15,
       -3.16894435e-02, -6.04537075e-02, -8.63842040e-02, -1.09572345e-01,
       -1.30109542e-01, -1.48087207e-01, -1.63596752e-01, -1.76729589e-01,
       -1.87577129e-01, -1.96230784e-01, -2.02781967e-01, -2.07322090e-01,
       -2.09942563e-01, -2.10734799e-01, -2.09790210e-01, -2.07200207e-01,
       -2.03056203e-01, -1.97449609e-01, -1.90471838e-01, -1.82214300e-01,
       -1.72768408e-01, -1.62225574e-01, -1.50677210e-01, -1.38214726e-01,
       -1.24929537e-01, -1.10913052e-01, -9.62566845e-02, -8.10518458e-02,
       -6.53899478e-02, -4.93624023e-02, -3.30606213e-02, -1.65760166e-02,
        1.37884799e-15])

INFLUENCE_LINES[9] = np.array(
      [-6.59406528e-15,  7.86581839e-02,  1.56882591e-01,  2.34239445e-01,
        3.10294968e-01,  3.84615385e-01,  4.56766917e-01,  5.26315789e-01,
        5.92828224e-01,  6.55870445e-01,  7.15008676e-01,  7.69809138e-01,
        8.19838057e-01,  8.64661654e-01,  9.03846154e-01,  9.36957779e-01,
        9.63562753e-01,  9.83227299e-01,  9.95517640e-01,  1.00000000e+00,
        9.96240602e-01,  9.83805668e-01,  9.62261423e-01,  9.31174089e-01,
        8.90109890e-01,  8.38635049e-01,  7.76315789e-01,  7.02718334e-01,
        6.17408907e-01,  5.19953730e-01,  4.09919028e-01,  2.86871024e-01,
        1.50375940e-01,  1.91064483e-14,  1.34581426e-01,  2.55376064e-01,
        3.62911758e-01,  4.57716351e-01,  5.40317689e-01,  6.11243615e-01,
        6.71021974e-01,  7.20180609e-01,  7.59247366e-01,  7.88750088e-01,
        8.09216620e-01,  8.21174805e-01,  8.25152488e-01,  8.21677514e-01,
        8.11277726e-01,  7.94480968e-01,  7.71815086e-01,  7.43807922e-01,
        7.10987322e-01,  6.73881130e-01,  6.33017189e-01,  5.88923345e-01,
        5.42127441e-01,  4.93157321e-01,  4.42540830e-01,  3.90805812e-01,
        3.38480111e-01,  2.86091571e-01,  2.34168037e-01,  1.83237353e-01,
        1.33827363e-01,  8.64659115e-02,  4.16808424e-02,  7.57670174e-15,
       -3.81550892e-02, -7.27881702e-02, -1.04009306e-01, -1.31928558e-01,
       -1.56655991e-01, -1.78301667e-01, -1.96975648e-01, -2.12787997e-01,
       -2.25848778e-01, -2.36268052e-01, -2.44155883e-01, -2.49622333e-01,
       -2.52777466e-01, -2.53731343e-01, -2.52594028e-01, -2.49475583e-01,
       -2.44486071e-01, -2.37735556e-01, -2.29334098e-01, -2.19391763e-01,
       -2.08018611e-01, -1.95324706e-01, -1.81420111e-01, -1.66414889e-01,
       -1.50419102e-01, -1.33542812e-01, -1.15896083e-01, -9.75889781e-02,
       -7.87315590e-02, -5.94338889e-02, -3.98060305e-02, -1.99580466e-02,
       -6.26834504e-15])

INFLUENCE_LINES[10] = np.array(
      [ 2.04211477e-15,  5.33479335e-02,  1.06809942e-01,  1.60500100e-01,
        2.14532483e-01,  2.69021166e-01,  3.24080223e-01,  3.79823730e-01,
        4.36365761e-01,  4.93820391e-01,  5.52301696e-01,  6.11923750e-01,
        6.72800628e-01,  7.35046404e-01,  7.98775155e-01,  8.64100955e-01,
        9.31137878e-01,  1.00000000e+00,  9.18107264e-01,  8.38267877e-01,
        7.60595914e-01,  6.85205448e-01,  6.12210556e-01,  5.41725312e-01,
        4.73863791e-01,  4.08740068e-01,  3.46468218e-01,  2.87162316e-01,
        2.30936436e-01,  1.77904654e-01,  1.28181044e-01,  8.18796822e-02,
        3.91146425e-02, -5.17783344e-15, -3.53923182e-02, -6.71589771e-02,
       -9.54387895e-02, -1.20370568e-01, -1.42093126e-01, -1.60745276e-01,
       -1.76465831e-01, -1.89393604e-01, -1.99667407e-01, -2.07426053e-01,
       -2.12808356e-01, -2.15953128e-01, -2.16999182e-01, -2.16085331e-01,
       -2.13350387e-01, -2.08933164e-01, -2.02972474e-01, -1.95607131e-01,
       -1.86975946e-01, -1.77217734e-01, -1.66471306e-01, -1.54875476e-01,
       -1.42569056e-01, -1.29690859e-01, -1.16379699e-01, -1.02774387e-01,
       -8.90137377e-02, -7.52365627e-02, -6.15816752e-02, -4.81878881e-02,
       -3.51940141e-02, -2.27388663e-02, -1.09612573e-02, -2.05318779e-15,
        1.00340522e-02,  1.91418842e-02,  2.73524404e-02,  3.46946651e-02,
        4.11975028e-02,  4.68898978e-02,  5.18007945e-02,  5.59591373e-02,
        5.93938706e-02,  6.21339387e-02,  6.42082860e-02,  6.56458569e-02,
        6.64755959e-02,  6.67264472e-02,  6.64273552e-02,  6.56072644e-02,
        6.42951191e-02,  6.25198637e-02,  6.03104426e-02,  5.76958002e-02,
        5.47048808e-02,  5.13666288e-02,  4.77099886e-02,  4.37639046e-02,
        3.95573212e-02,  3.51191827e-02,  3.04784336e-02,  2.56640181e-02,
        2.07048808e-02,  1.56299659e-02,  1.04682179e-02,  5.24858115e-03,
        1.75087934e-15])

def get_standard_influence_line(influence_line_type, length, fx=10.):
    """Get standard influence line with specified length and sampling rate.

    There are currently 10 standard influence line types  available:
        1 : Total load effect
        2 : Bending moment at midspan of simply supported beam
        3 : Shear at midspand of simply supported beam
        4 : Bending moment at midspan of fixed-fixed beam
        5 : Bending moment at left support, fixed-fixed beam
        6 : Bending moment at mid of first span, two-span simply sup. beam.
        7 : Bending moment at midsupport of two-span simply sup. beam.
        8 : Bending moment at mid of second span, three-span simply sup. beam.
        9 : Bending moment at second support, three-span simply sup. beam.
       10 : Bending moment at mid of first span, three-span simply sup. beam.

    Arguments
    ---------
    influence_line_type : int
        The influence line, see table above.
    length : float
        Length of the influence line.
    fx : float
        Spatial sampling rate of influence line.
    """
    fp = INFLUENCE_LINES[influence_line_type]
    xp = np.linspace(0., 1., 101)
    N = np.round(length * fx).astype(np.int) + 1
    x = np.linspace(0., 1., N)
    return np.interp(x, xp, fp)




if __name__ == '__main__':
    pass

# -*- coding: utf-8 -*-
from __future__ import division, print_function, absolute_import
import numpy as np
from collections import OrderedDict

__all__ = ["get_standard_influence_line"]



INFLUENCE_LINES = OrderedDict()

INFLUENCE_LINES[1] = np.array(
      [1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
       1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
       1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
       1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
       1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
       1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])

INFLUENCE_LINES[2] = np.array(
      [ 2.11516271e-16,  2.00000000e-02,  4.00000000e-02,  6.00000000e-02,
        8.00000001e-02,  1.00000000e-01,  1.20000000e-01,  1.40000000e-01,
        1.60000000e-01,  1.80000000e-01,  2.00000000e-01,  2.20000000e-01,
        2.40000000e-01,  2.60000000e-01,  2.80000000e-01,  3.00000000e-01,
        3.20000000e-01,  3.40000000e-01,  3.60000000e-01,  3.80000000e-01,
        4.00000000e-01,  4.20000000e-01,  4.40000000e-01,  4.60000000e-01,
        4.80000000e-01,  5.00000000e-01,  5.20000000e-01,  5.40000000e-01,
        5.60000000e-01,  5.80000000e-01,  6.00000000e-01,  6.20000000e-01,
        6.40000000e-01,  6.60000000e-01,  6.80000000e-01,  7.00000000e-01,
        7.20000000e-01,  7.40000000e-01,  7.60000000e-01,  7.80000000e-01,
        8.00000000e-01,  8.20000000e-01,  8.40000000e-01,  8.60000000e-01,
        8.80000000e-01,  9.00000000e-01,  9.20000000e-01,  9.40000000e-01,
        9.60000000e-01,  9.80000000e-01,  1.00000000e+00,  9.80000000e-01,
        9.60000000e-01,  9.40000000e-01,  9.20000000e-01,  9.00000000e-01,
        8.80000000e-01,  8.60000000e-01,  8.40000000e-01,  8.20000000e-01,
        8.00000000e-01,  7.80000000e-01,  7.60000000e-01,  7.40000000e-01,
        7.20000000e-01,  7.00000000e-01,  6.80000000e-01,  6.60000000e-01,
        6.40000000e-01,  6.20000000e-01,  6.00000000e-01,  5.80000000e-01,
        5.60000000e-01,  5.40000000e-01,  5.20000000e-01,  5.00000000e-01,
        4.80000000e-01,  4.60000000e-01,  4.40000000e-01,  4.20000000e-01,
        4.00000000e-01,  3.80000000e-01,  3.60000000e-01,  3.40000000e-01,
        3.20000000e-01,  3.00000000e-01,  2.80000000e-01,  2.60000000e-01,
        2.40000000e-01,  2.20000000e-01,  2.00000000e-01,  1.80000000e-01,
        1.60000000e-01,  1.40000000e-01,  1.20000000e-01,  1.00000000e-01,
        8.00000000e-02,  6.00000000e-02,  4.00000000e-02,  2.00000000e-02,
       -0.00000000e+00])

INFLUENCE_LINES[3] = np.array(
      [ 1.78750935e-16,  2.00000000e-02,  4.00000000e-02,  6.00000000e-02,
        8.00000000e-02,  1.00000000e-01,  1.20000000e-01,  1.40000000e-01,
        1.60000000e-01,  1.80000000e-01,  2.00000000e-01,  2.20000000e-01,
        2.40000000e-01,  2.60000000e-01,  2.80000000e-01,  3.00000000e-01,
        3.20000000e-01,  3.40000000e-01,  3.60000000e-01,  3.80000000e-01,
        4.00000000e-01,  4.20000000e-01,  4.40000000e-01,  4.60000000e-01,
        4.80000000e-01,  5.00000000e-01,  5.20000000e-01,  5.40000000e-01,
        5.60000000e-01,  5.80000000e-01,  6.00000000e-01,  6.20000000e-01,
        6.40000000e-01,  6.60000000e-01,  6.80000000e-01,  7.00000000e-01,
        7.20000000e-01,  7.40000000e-01,  7.60000000e-01,  7.80000000e-01,
        8.00000000e-01,  8.20000000e-01,  8.40000000e-01,  8.60000000e-01,
        8.80000000e-01,  9.00000000e-01,  9.20000000e-01,  9.40000000e-01,
        9.60000000e-01,  9.79999999e-01,  1.00000000e+00, -9.79999998e-01,
       -9.59999998e-01, -9.39999998e-01, -9.19999998e-01, -8.99999998e-01,
       -8.79999998e-01, -8.59999998e-01, -8.39999998e-01, -8.19999999e-01,
       -7.99999999e-01, -7.79999999e-01, -7.59999999e-01, -7.39999999e-01,
       -7.19999999e-01, -6.99999998e-01, -6.79999999e-01, -6.59999999e-01,
       -6.39999999e-01, -6.19999999e-01, -5.99999999e-01, -5.79999999e-01,
       -5.59999999e-01, -5.39999999e-01, -5.19999999e-01, -4.99999999e-01,
       -4.79999999e-01, -4.59999999e-01, -4.39999999e-01, -4.19999999e-01,
       -3.99999999e-01, -3.79999999e-01, -3.59999999e-01, -3.39999999e-01,
       -3.19999999e-01, -2.99999999e-01, -2.79999999e-01, -2.59999999e-01,
       -2.40000000e-01, -2.20000000e-01, -2.00000000e-01, -1.80000000e-01,
       -1.60000000e-01, -1.40000000e-01, -1.20000000e-01, -9.99999998e-02,
       -7.99999999e-02, -5.99999999e-02, -3.99999999e-02, -2.00000000e-02,
        0.00000000e+00])

INFLUENCE_LINES[4] = np.array(
      [3.77941116e-16, 4.00000000e-04, 1.60000000e-03, 3.60000000e-03,
       6.40000001e-03, 1.00000000e-02, 1.44000000e-02, 1.96000000e-02,
       2.56000000e-02, 3.24000000e-02, 4.00000000e-02, 4.84000000e-02,
       5.76000000e-02, 6.76000000e-02, 7.84000000e-02, 9.00000000e-02,
       1.02400000e-01, 1.15600000e-01, 1.29600000e-01, 1.44400000e-01,
       1.60000000e-01, 1.76400000e-01, 1.93600000e-01, 2.11600000e-01,
       2.30400000e-01, 2.50000000e-01, 2.70400000e-01, 2.91600000e-01,
       3.13600000e-01, 3.36400000e-01, 3.60000000e-01, 3.84400000e-01,
       4.09600000e-01, 4.35600000e-01, 4.62400000e-01, 4.90000000e-01,
       5.18400000e-01, 5.47600000e-01, 5.77600000e-01, 6.08400000e-01,
       6.40000000e-01, 6.72400000e-01, 7.05600000e-01, 7.39600000e-01,
       7.74400000e-01, 8.10000000e-01, 8.46400000e-01, 8.83600000e-01,
       9.21600000e-01, 9.60400000e-01, 1.00000000e+00, 9.60400000e-01,
       9.21600000e-01, 8.83600000e-01, 8.46400000e-01, 8.10000000e-01,
       7.74400000e-01, 7.39600000e-01, 7.05600000e-01, 6.72400000e-01,
       6.40000000e-01, 6.08400000e-01, 5.77600000e-01, 5.47600000e-01,
       5.18400000e-01, 4.90000000e-01, 4.62400000e-01, 4.35600000e-01,
       4.09600000e-01, 3.84400000e-01, 3.60000000e-01, 3.36400000e-01,
       3.13600000e-01, 2.91600000e-01, 2.70400000e-01, 2.50000000e-01,
       2.30400000e-01, 2.11600000e-01, 1.93600000e-01, 1.76400000e-01,
       1.60000000e-01, 1.44400000e-01, 1.29600000e-01, 1.15600000e-01,
       1.02400000e-01, 9.00000000e-02, 7.84000000e-02, 6.76000000e-02,
       5.76000000e-02, 4.84000000e-02, 4.00000000e-02, 3.24000000e-02,
       2.56000000e-02, 1.96000000e-02, 1.44000000e-02, 1.00000000e-02,
       6.40000000e-03, 3.60000000e-03, 1.60000000e-03, 4.00000000e-04,
       3.26609043e-17])

INFLUENCE_LINES[5] = np.array(
      [ 8.30491970e-16,  6.61617287e-02,  1.29663757e-01,  1.90546589e-01,
        2.48850726e-01,  3.04616672e-01,  3.57884931e-01,  4.08696004e-01,
        4.57090396e-01,  5.03108609e-01,  5.46791146e-01,  5.88178510e-01,
        6.27311205e-01,  6.64229733e-01,  6.98974598e-01,  7.31586302e-01,
        7.62105348e-01,  7.90572241e-01,  8.17027481e-01,  8.41511574e-01,
        8.64065021e-01,  8.84728326e-01,  9.03541992e-01,  9.20546521e-01,
        9.35782418e-01,  9.49290184e-01,  9.61110324e-01,  9.71283339e-01,
        9.79849734e-01,  9.86850010e-01,  9.92324672e-01,  9.96314223e-01,
        9.98859164e-01,  1.00000000e+00,  9.99777233e-01,  9.98231367e-01,
        9.95402904e-01,  9.91332348e-01,  9.86060201e-01,  9.79626967e-01,
        9.72073148e-01,  9.63439249e-01,  9.53765771e-01,  9.43093218e-01,
        9.31462093e-01,  9.18912898e-01,  9.05486138e-01,  8.91222314e-01,
        8.76161931e-01,  8.60345491e-01,  8.43813497e-01,  8.26606452e-01,
        8.08764860e-01,  7.90329222e-01,  7.71340043e-01,  7.51837826e-01,
        7.31863073e-01,  7.11456287e-01,  6.90657972e-01,  6.69508630e-01,
        6.48048766e-01,  6.26318880e-01,  6.04359478e-01,  5.82211061e-01,
        5.59914133e-01,  5.37509198e-01,  5.15036756e-01,  4.92537313e-01,
        4.70051371e-01,  4.47619433e-01,  4.25282002e-01,  4.03079582e-01,
        3.81052674e-01,  3.59241783e-01,  3.37687411e-01,  3.16430061e-01,
        2.95510237e-01,  2.74968441e-01,  2.54845177e-01,  2.35180947e-01,
        2.16016255e-01,  1.97391604e-01,  1.79347496e-01,  1.61924435e-01,
        1.45162923e-01,  1.29103465e-01,  1.13786562e-01,  9.92527188e-02,
        8.55424371e-02,  7.26962204e-02,  6.07545718e-02,  4.97579943e-02,
        3.97469910e-02,  3.07620648e-02,  2.28437190e-02,  1.60324564e-02,
        1.03687802e-02,  5.89319346e-03,  2.64619913e-03,  6.68300289e-04,
       -2.75597120e-17])

INFLUENCE_LINES[6] = np.array(
      [ 7.35243304e-16,  3.69280000e-02,  7.38855385e-02,  1.10902154e-01,
        1.48007385e-01,  1.85230769e-01,  2.22601846e-01,  2.60150154e-01,
        2.97905231e-01,  3.35896615e-01,  3.74153846e-01,  4.12706462e-01,
        4.51584000e-01,  4.90816000e-01,  5.30432000e-01,  5.70461538e-01,
        6.10934154e-01,  6.51879385e-01,  6.93326769e-01,  7.35305846e-01,
        7.77846154e-01,  8.20977231e-01,  8.64728615e-01,  9.09129846e-01,
        9.54210462e-01,  1.00000000e+00,  9.48066462e-01,  8.96900923e-01,
        8.46532923e-01,  7.96992000e-01,  7.48307692e-01,  7.00509538e-01,
        6.53627077e-01,  6.07689846e-01,  5.62727385e-01,  5.18769231e-01,
        4.75844923e-01,  4.33984000e-01,  3.93216000e-01,  3.53570462e-01,
        3.15076923e-01,  2.77764923e-01,  2.41664000e-01,  2.06803692e-01,
        1.73213538e-01,  1.40923077e-01,  1.09961846e-01,  8.03593846e-02,
        5.21452308e-02,  2.53489231e-02,  8.17124149e-16, -2.38818462e-02,
       -4.63163077e-02, -6.73329231e-02, -8.69612308e-02, -1.05230769e-01,
       -1.22171077e-01, -1.37811692e-01, -1.52182154e-01, -1.65312000e-01,
       -1.77230769e-01, -1.87968000e-01, -1.97553231e-01, -2.06016000e-01,
       -2.13385846e-01, -2.19692308e-01, -2.24964923e-01, -2.29233231e-01,
       -2.32526769e-01, -2.34875077e-01, -2.36307692e-01, -2.36854154e-01,
       -2.36544000e-01, -2.35406769e-01, -2.33472000e-01, -2.30769231e-01,
       -2.27328000e-01, -2.23177846e-01, -2.18348308e-01, -2.12868923e-01,
       -2.06769231e-01, -2.00078769e-01, -1.92827077e-01, -1.85043692e-01,
       -1.76758154e-01, -1.68000000e-01, -1.58798769e-01, -1.49184000e-01,
       -1.39185231e-01, -1.28832000e-01, -1.18153846e-01, -1.07180308e-01,
       -9.59409231e-02, -8.44652308e-02, -7.27827692e-02, -6.09230769e-02,
       -4.89156923e-02, -3.67901538e-02, -2.45760000e-02, -1.23027692e-02,
       -1.62759869e-24])

INFLUENCE_LINES[7] = np.array(
      [-1.14227598e-15,  5.19423832e-02,  1.03760055e-01,  1.55328303e-01,
        2.06522417e-01,  2.57217684e-01,  3.07289393e-01,  3.56612833e-01,
        4.05063291e-01,  4.52516057e-01,  4.98846418e-01,  5.43929663e-01,
        5.87641080e-01,  6.29855958e-01,  6.70449585e-01,  7.09297250e-01,
        7.46274241e-01,  7.81255846e-01,  8.14117354e-01,  8.44734053e-01,
        8.72981231e-01,  8.98734177e-01,  9.21868180e-01,  9.42258527e-01,
        9.59780508e-01,  9.74309410e-01,  9.85720521e-01,  9.93889131e-01,
        9.98690528e-01,  1.00000000e+00,  9.97692835e-01,  9.91644322e-01,
        9.81729750e-01,  9.67824406e-01,  9.49803579e-01,  9.27542558e-01,
        9.00916630e-01,  8.69801085e-01,  8.34071210e-01,  7.93602295e-01,
        7.48269626e-01,  6.97948494e-01,  6.42514186e-01,  5.81841990e-01,
        5.15807196e-01,  4.44285091e-01,  3.67150963e-01,  2.84280102e-01,
        1.95547796e-01,  1.00829332e-01, -3.95758244e-15,  1.00829332e-01,
        1.95547796e-01,  2.84280102e-01,  3.67150963e-01,  4.44285091e-01,
        5.15807196e-01,  5.81841990e-01,  6.42514186e-01,  6.97948494e-01,
        7.48269626e-01,  7.93602295e-01,  8.34071210e-01,  8.69801085e-01,
        9.00916630e-01,  9.27542558e-01,  9.49803579e-01,  9.67824406e-01,
        9.81729750e-01,  9.91644323e-01,  9.97692835e-01,  1.00000000e+00,
        9.98690528e-01,  9.93889131e-01,  9.85720521e-01,  9.74309410e-01,
        9.59780507e-01,  9.42258527e-01,  9.21868180e-01,  8.98734177e-01,
        8.72981231e-01,  8.44734053e-01,  8.14117354e-01,  7.81255846e-01,
        7.46274241e-01,  7.09297250e-01,  6.70449585e-01,  6.29855958e-01,
        5.87641080e-01,  5.43929663e-01,  4.98846418e-01,  4.52516057e-01,
        4.05063291e-01,  3.56612833e-01,  3.07289393e-01,  2.57217684e-01,
        2.06522417e-01,  1.55328303e-01,  1.03760055e-01,  5.19423832e-02,
        9.68656345e-24])

INFLUENCE_LINES[8] = np.array(
      [ 4.15163724e-16, -1.65760166e-02, -3.30606213e-02, -4.93624023e-02,
       -6.53899477e-02, -8.10518458e-02, -9.62566845e-02, -1.10913052e-01,
       -1.24929537e-01, -1.38214726e-01, -1.50677210e-01, -1.62225574e-01,
       -1.72768408e-01, -1.82214300e-01, -1.90471838e-01, -1.97449609e-01,
       -2.03056203e-01, -2.07200207e-01, -2.09790210e-01, -2.10734799e-01,
       -2.09942563e-01, -2.07322090e-01, -2.02781967e-01, -1.96230784e-01,
       -1.87577129e-01, -1.76729588e-01, -1.63596752e-01, -1.48087207e-01,
       -1.30109542e-01, -1.09572345e-01, -8.63842040e-02, -6.04537075e-02,
       -3.16894435e-02, -4.23318804e-15,  3.46907994e-02,  7.23981900e-02,
        1.13122172e-01,  1.56862745e-01,  2.03619910e-01,  2.53393665e-01,
        3.06184012e-01,  3.61990950e-01,  4.20814480e-01,  4.82654600e-01,
        5.47511312e-01,  6.15384615e-01,  6.86274510e-01,  7.60180995e-01,
        8.37104072e-01,  9.17043741e-01,  1.00000000e+00,  9.17043741e-01,
        8.37104072e-01,  7.60180995e-01,  6.86274510e-01,  6.15384615e-01,
        5.47511312e-01,  4.82654600e-01,  4.20814480e-01,  3.61990950e-01,
        3.06184012e-01,  2.53393665e-01,  2.03619909e-01,  1.56862745e-01,
        1.13122172e-01,  7.23981900e-02,  3.46907994e-02, -1.58135417e-15,
       -3.16894435e-02, -6.04537075e-02, -8.63842040e-02, -1.09572345e-01,
       -1.30109542e-01, -1.48087207e-01, -1.63596752e-01, -1.76729589e-01,
       -1.87577129e-01, -1.96230784e-01, -2.02781967e-01, -2.07322090e-01,
       -2.09942563e-01, -2.10734799e-01, -2.09790210e-01, -2.07200207e-01,
       -2.03056203e-01, -1.97449609e-01, -1.90471838e-01, -1.82214300e-01,
       -1.72768408e-01, -1.62225574e-01, -1.50677210e-01, -1.38214726e-01,
       -1.24929537e-01, -1.10913052e-01, -9.62566845e-02, -8.10518458e-02,
       -6.53899478e-02, -4.93624023e-02, -3.30606213e-02, -1.65760166e-02,
        1.37884799e-15])

INFLUENCE_LINES[9] = np.array(
      [-6.59406528e-15,  7.86581839e-02,  1.56882591e-01,  2.34239445e-01,
        3.10294968e-01,  3.84615385e-01,  4.56766917e-01,  5.26315789e-01,
        5.92828224e-01,  6.55870445e-01,  7.15008676e-01,  7.69809138e-01,
        8.19838057e-01,  8.64661654e-01,  9.03846154e-01,  9.36957779e-01,
        9.63562753e-01,  9.83227299e-01,  9.95517640e-01,  1.00000000e+00,
        9.96240602e-01,  9.83805668e-01,  9.62261423e-01,  9.31174089e-01,
        8.90109890e-01,  8.38635049e-01,  7.76315789e-01,  7.02718334e-01,
        6.17408907e-01,  5.19953730e-01,  4.09919028e-01,  2.86871024e-01,
        1.50375940e-01,  1.91064483e-14,  1.34581426e-01,  2.55376064e-01,
        3.62911758e-01,  4.57716351e-01,  5.40317689e-01,  6.11243615e-01,
        6.71021974e-01,  7.20180609e-01,  7.59247366e-01,  7.88750088e-01,
        8.09216620e-01,  8.21174805e-01,  8.25152488e-01,  8.21677514e-01,
        8.11277726e-01,  7.94480968e-01,  7.71815086e-01,  7.43807922e-01,
        7.10987322e-01,  6.73881130e-01,  6.33017189e-01,  5.88923345e-01,
        5.42127441e-01,  4.93157321e-01,  4.42540830e-01,  3.90805812e-01,
        3.38480111e-01,  2.86091571e-01,  2.34168037e-01,  1.83237353e-01,
        1.33827363e-01,  8.64659115e-02,  4.16808424e-02,  7.57670174e-15,
       -3.81550892e-02, -7.27881702e-02, -1.04009306e-01, -1.31928558e-01,
       -1.56655991e-01, -1.78301667e-01, -1.96975648e-01, -2.12787997e-01,
       -2.25848778e-01, -2.36268052e-01, -2.44155883e-01, -2.49622333e-01,
       -2.52777466e-01, -2.53731343e-01, -2.52594028e-01, -2.49475583e-01,
       -2.44486071e-01, -2.37735556e-01, -2.29334098e-01, -2.19391763e-01,
       -2.08018611e-01, -1.95324706e-01, -1.81420111e-01, -1.66414889e-01,
       -1.50419102e-01, -1.33542812e-01, -1.15896083e-01, -9.75889781e-02,
       -7.87315590e-02, -5.94338889e-02, -3.98060305e-02, -1.99580466e-02,
       -6.26834504e-15])

INFLUENCE_LINES[10] = np.array(
      [ 2.04211477e-15,  5.33479335e-02,  1.06809942e-01,  1.60500100e-01,
        2.14532483e-01,  2.69021166e-01,  3.24080223e-01,  3.79823730e-01,
        4.36365761e-01,  4.93820391e-01,  5.52301696e-01,  6.11923750e-01,
        6.72800628e-01,  7.35046404e-01,  7.98775155e-01,  8.64100955e-01,
        9.31137878e-01,  1.00000000e+00,  9.18107264e-01,  8.38267877e-01,
        7.60595914e-01,  6.85205448e-01,  6.12210556e-01,  5.41725312e-01,
        4.73863791e-01,  4.08740068e-01,  3.46468218e-01,  2.87162316e-01,
        2.30936436e-01,  1.77904654e-01,  1.28181044e-01,  8.18796822e-02,
        3.91146425e-02, -5.17783344e-15, -3.53923182e-02, -6.71589771e-02,
       -9.54387895e-02, -1.20370568e-01, -1.42093126e-01, -1.60745276e-01,
       -1.76465831e-01, -1.89393604e-01, -1.99667407e-01, -2.07426053e-01,
       -2.12808356e-01, -2.15953128e-01, -2.16999182e-01, -2.16085331e-01,
       -2.13350387e-01, -2.08933164e-01, -2.02972474e-01, -1.95607131e-01,
       -1.86975946e-01, -1.77217734e-01, -1.66471306e-01, -1.54875476e-01,
       -1.42569056e-01, -1.29690859e-01, -1.16379699e-01, -1.02774387e-01,
       -8.90137377e-02, -7.52365627e-02, -6.15816752e-02, -4.81878881e-02,
       -3.51940141e-02, -2.27388663e-02, -1.09612573e-02, -2.05318779e-15,
        1.00340522e-02,  1.91418842e-02,  2.73524404e-02,  3.46946651e-02,
        4.11975028e-02,  4.68898978e-02,  5.18007945e-02,  5.59591373e-02,
        5.93938706e-02,  6.21339387e-02,  6.42082860e-02,  6.56458569e-02,
        6.64755959e-02,  6.67264472e-02,  6.64273552e-02,  6.56072644e-02,
        6.42951191e-02,  6.25198637e-02,  6.03104426e-02,  5.76958002e-02,
        5.47048808e-02,  5.13666288e-02,  4.77099886e-02,  4.37639046e-02,
        3.95573212e-02,  3.51191827e-02,  3.04784336e-02,  2.56640181e-02,
        2.07048808e-02,  1.56299659e-02,  1.04682179e-02,  5.24858115e-03,
        1.75087934e-15])

def get_standard_influence_line(influence_line_type, length, fx=10.):
    """Get standard influence line with specified length and sampling rate.

    There are currently 10 standard influence line types  available:
        1 : Total load effect
        2 : Bending moment at midspan of simply supported beam
        3 : Shear at midspand of simply supported beam
        4 : Bending moment at midspan of fixed-fixed beam
        5 : Bending moment at left support, fixed-fixed beam
        6 : Bending moment at mid of first span, two-span simply sup. beam.
        7 : Bending moment at midsupport of two-span simply sup. beam.
        8 : Bending moment at mid of second span, three-span simply sup. beam.
        9 : Bending moment at second support, three-span simply sup. beam.
       10 : Bending moment at mid of first span, three-span simply sup. beam.

    Arguments
    ---------
    influence_line_type : int
        The influence line, see table above.
    length : float
        Length of the influence line.
    fx : float
        Spatial sampling rate of influence line.
    """
    fp = INFLUENCE_LINES[influence_line_type]
    xp = np.linspace(0., 1., 101)
    N = np.round(length * fx).astype(np.int) + 1
    x = np.linspace(0., 1., N)
    return np.interp(x, xp, fp)




if __name__ == '__main__':
    pass

# -*- coding: utf-8 -*- Get standard influence line with specified length and sampling rate.      There are currently 10 standard influence line types  available:         1 : Total load effect         2 : Bending moment at midspan of simply supported beam         3 : Shear at midspand of simply supported beam         4 : Bending moment at midspan of fixed-fixed beam         5 : Bending moment at left support, fixed-fixed beam         6 : Bending moment at mid of first span, two-span simply sup. beam.         7 : Bending moment at midsupport of two-span simply sup. beam.         8 : Bending moment at mid of second span, three-span simply sup. beam.         9 : Bending moment at second support, three-span simply sup. beam.        10 : Bending moment at mid of first span, three-span simply sup. beam.      Arguments     ---------     influence_line_type : int         The influence line, see table above.     length : float         Length of the influence line.     fx : float         Spatial sampling rate of influence line.