def compute_pwp(clay_val, oc_val, sand_val):
    """
    Calculate permanent wilting point based on Clay, Organic Matter and sand value
    :param clay_val: percentage of clay
    :param oc_val: percentage of organic carbon
    :param sand_val: percentage of sand
    :return: a float value representing PWP
    """

    # Step #1 - convert OC to OM
    om_val = 2 * oc_val
    om_val /= 2 #1000
    clay_val /= 100
    sand_val /= 100

    # Step #2 - compute theta_1500_t
    theta_1500_t = 0.031 - (0.024 * sand_val) + (0.487 * clay_val) + (0.006 * om_val) \
                   + (0.005 * sand_val * om_val) - (0.013 * clay_val * om_val) + (0.068 * sand_val * clay_val)

    # Step #3 - finally compute theta_1500
    theta_1500 = (1.14 * theta_1500_t) - 0.02

    return round(theta_1500, 2)