{"id":"vector-projection","version":"1.0.0","description":"Compute the vector projection of a finite-number vector onto another.","supported_operations":["vector projection","project a vector onto another vector"],"unsupported_operations":["scalar projection only (this returns the full vector projection)","projecting onto a zero vector"],"semantics":["Inputs a and onto are arrays of finite JSON numbers with the same length, from 1 to 64 entries, magnitude bounded to at most 1000000.","The result is the vector projection proj_onto(a) = ((a . onto) / (onto . onto)) * onto, computed in IEEE-754 double precision.","Optional input tolerance (default 1e-9, range 0 to 1) is the minimum value of (onto . onto) accepted; smaller values are rejected as projecting onto a zero (or effectively zero) vector.","A result entry of -0 is normalized to 0.","Every result entry is checked to be a finite number before it is returned; a non-finite intermediate is rejected as invalid input rather than silently serialized."],"limits":{"max_dim":64,"max_abs_value":1000000},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["a","onto"],"properties":{"a":{"type":"array","minItems":1,"maxItems":64,"items":{"type":"number"}},"onto":{"type":"array","minItems":1,"maxItems":64,"items":{"type":"number"}},"tolerance":{"type":"number","minimum":0,"maximum":1}}},"output_schema":{"type":"object","additionalProperties":false,"required":["result"],"properties":{"result":{"type":"array","items":{"type":"number"}}}},"examples":[{"input":{"a":[3,4],"onto":[1,0]},"output":{"result":[3,0]}}],"execute_url":"/v1/tools/vector-projection/versions/1.0.0/execute"}