def triangle_unaddress(fx, tr):
fx = np.asarray(fx)<EOL>tr = np.asarray(tr)<EOL>ab = fx[<NUM_LIT:1>] - fx[<NUM_LIT:0>]<EOL>ac = fx[<NUM_LIT:2>] - fx[<NUM_LIT:0>]<EOL>bc = fx[<NUM_LIT:2>] - fx[<NUM_LIT:1>]<EOL>return np.asarray([ax + tr[<NUM_LIT:1>]*(abx + tr[<NUM_LIT:0>]*bcx) for (ax, bcx, abx) in zip(fx[<NUM_LIT:0>], bc, ab)])<EOL>
triangle_unaddress(FX, tr) yields the point P, inside the reference triangle given by the 
(3 x d)-sized coordinate matrix FX, that is addressed by the address coordinate tr, which may
either be a 2-d vector or a (2 x n)-sized matrix.