# Help me on function definition

John Machin sjmachin at lexicon.net
Sat Mar 29 04:09:50 CET 2008

```On Mar 29, 12:47 pm, "aeneng" <aen... at yahoo.com> wrote:
> Hello everyone,
>
> I am just starting to use python in numerical cacluation.
> I need you to help me to see what's wrong with the following piece of
> codes, which computes the cross product of two vectors and returns
> the result. u and v are two 3x1 matrix.
>
> when I import the function, error message show like this>>> import cross
>
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
>   File "cross.py", line 8
>     ppp2=u[2]*v[0]-u[0]*v[2]
>     ^
> SyntaxError: invalid syntax
>
> WHAT IS WRONG WITH MY CODE?
>
>
> ##here is the function definition.
> ##cross.py##
> def cross(u,v)
>     """input two vectors u and v in 3-D space,
>        output a cross product of vector w, in column or in row
> accordingly."""
>     ppp1,ppp2,ppp3=0.0,0.0,0.0
>     ppp1=u[1]*v[2]-u[2]*v[1]
>     ppp2=u[2]*v[0]-u[0]*v[2]
>     ppp3=u[0]*v[1]-u[1]*v[0]
>     # store the result of the cross product in u
>     u[0]=ppp1
>     u[1]=ppp2
>     u[2]=ppp3
>     return u #return the cross product of vector u x v.

And you are stuffing the result into the first argument as well as
returning the result ... not a good idea.

> if __name__=="__main__":
>         from cvxopt.base import matrix
>         u=matrix([1.0,0.0,0.0],(3,1))
>         v=matrix([0.0,1.0,0.0],(3,1))
>         print cross(u,v)
>         print "file name is %s" %__name__

```