def _opbend_cos_low(a, b, c, deriv):
a = Vector3(<NUM_LIT:9>, deriv, a, (<NUM_LIT:0>, <NUM_LIT:1>, <NUM_LIT:2>))<EOL>b = Vector3(<NUM_LIT:9>, deriv, b, (<NUM_LIT:3>, <NUM_LIT:4>, <NUM_LIT:5>))<EOL>c = Vector3(<NUM_LIT:9>, deriv, c, (<NUM_LIT:6>, <NUM_LIT:7>, <NUM_LIT:8>))<EOL>n  = cross(a,b)<EOL>n /= n.norm()<EOL>c /= c.norm()<EOL>temp = dot(n,c)<EOL>result = temp.copy()<EOL>result.v = np.sqrt(<NUM_LIT:1.0>-temp.v**<NUM_LIT:2>)<EOL>if result.deriv > <NUM_LIT:0>:<EOL><INDENT>result.d *= -temp.v<EOL>result.d /= result.v<EOL><DEDENT>if result.deriv > <NUM_LIT:1>:<EOL><INDENT>result.dd *= -temp.v<EOL>result.dd /= result.v<EOL>temp2 = np.array([temp.d]).transpose()*temp.d<EOL>temp2 /= result.v**<NUM_LIT:3><EOL>result.dd -= temp2<EOL><DEDENT>return result.results()<EOL>
Similar to opbend_cos, but with relative vectors