Skip to main content
added 2 characters in body
Source Link
user664
user664
  • As the document says,

Compile[{{x1,t1,n1},…},expr] assumes that xi is a rank ni array of objects, each of a type that matches ti.

Hence, {xyz,_Real,1} means xyz is a rank 1 array of "real numbers". Since xyz is a vector, xyz[[1]] means the first component of xyz. Therefore, if xyz={2,4,3}, then xyz[[1]]=2.

  • The expr in Compile[{{x1,t1,n1},…},expr] is given by the block of Module, a simple example of which for seeing how it works could be

     f=Module[{r=x,theta=y},{r,theta,r+theta}];
    
  • Here is how the function really works. Given $x=(x_1,x_2,x_3)$ and $y=(y_1,y_2,y_3)$ in $\mathbb{R}^3$, the output of the function is $$ \bigg(\frac{r(1+x_3)}{1+x_3-y_3}\cos(\theta+\pi)+x_1, \frac{r(1+x_3)}{1+x_3-y_3}\sin(\theta+\pi)+x_2,0\bigg) $$ where $$ r:=\sqrt{(x_1-y_1)^2+(x_2-y_2)^2},\quad \theta:=\arctan\frac{x_2-y_2}{x_1-y_1}. $$

The coordinate of the center of the sphere $S$ is given by $x=(x_1,x_2,x_3)$ and the radius of the sphere is $1$. This makes sense since the output of the function is of the form $(R\cos\psi+x_1,R\sin\psi+x_2,0)$, which implies that $x_1,x_2$ are the first two coordinates of the center of the sphere.

On the other hand, $y=(y_1,y_2,y_3)$ is the coordinate of a point on the sphere. The output of the function gives the coordinate of the "sterographic projection" of $y$ (the intersection of the line (which goes through $y$ and the north pole of the sphere) with the complex plane). When $x=(0,0,0),$ the function coincides with the one defined in Wikipedia.


One needs to be careful ofwith the definition $\theta$ since in Mathematica, ArcTan[x,y] is different from the function $\arctan\frac{y}{x}$. For instance one has in Mathematica ArcTan[1,1]=$\frac{\pi}{4}$ and ArcTan[-1,-1]=$\frac{-3\pi}{4}$. This is why $\theta+\pi$ instead of $\theta$ is used in the output of the function. For the sake of a function, one could define $\theta$ as the angle of the vector $(y_1-x_1,y_2-x_2,0)$ with the $X_1$-axis and replace $\theta+\pi$ with $\theta$ in the output of the function.

In the code, one could replace theta = ArcTan[(xyz[[1]] - XYZ[[1]]), (xyz[[2]] - XYZ[[2]])] with theta = ArcTan[(XYZ[[1]] - xyz[[1]]), (XYZ[[2]] - xyz[[2]])] and theta + Pi in the Cos and Sin functions with theta.

Having not checked it though, I think one can simply replace Cos[theta+Pi] with XYZ[[1]]-xyz[[1]] and Sin[theta+Pi] with XYZ[[2]]-xyz[[2]] so that one does not need to introduce the variable theta at all.

  • As the document says,

Compile[{{x1,t1,n1},…},expr] assumes that xi is a rank ni array of objects, each of a type that matches ti.

Hence, {xyz,_Real,1} means xyz is a rank 1 array of "real numbers". Since xyz is a vector, xyz[[1]] means the first component of xyz. Therefore, if xyz={2,4,3}, then xyz[[1]]=2.

  • The expr in Compile[{{x1,t1,n1},…},expr] is given by the block of Module, a simple example of which for seeing how it works could be

     f=Module[{r=x,theta=y},{r,theta,r+theta}];
    
  • Here is how the function really works. Given $x=(x_1,x_2,x_3)$ and $y=(y_1,y_2,y_3)$ in $\mathbb{R}^3$, the output of the function is $$ \bigg(\frac{r(1+x_3)}{1+x_3-y_3}\cos(\theta+\pi)+x_1, \frac{r(1+x_3)}{1+x_3-y_3}\sin(\theta+\pi)+x_2,0\bigg) $$ where $$ r:=\sqrt{(x_1-y_1)^2+(x_2-y_2)^2},\quad \theta:=\arctan\frac{x_2-y_2}{x_1-y_1}. $$

The coordinate of the center of the sphere $S$ is given by $x=(x_1,x_2,x_3)$ and the radius of the sphere is $1$. This makes sense since the output of the function is of the form $(R\cos\psi+x_1,R\sin\psi+x_2,0)$, which implies that $x_1,x_2$ are the first two coordinates of the center of the sphere.

On the other hand, $y=(y_1,y_2,y_3)$ is the coordinate of a point on the sphere. The output of the function gives the coordinate of the "sterographic projection" of $y$ (the intersection of the line (which goes through $y$ and the north pole of the sphere) with the complex plane). When $x=(0,0,0),$ the function coincides with the one defined in Wikipedia.


One needs to be careful of the definition $\theta$ since in Mathematica, ArcTan[x,y] is different from the function $\arctan\frac{y}{x}$. For instance one has in Mathematica ArcTan[1,1]=$\frac{\pi}{4}$ and ArcTan[-1,-1]=$\frac{-3\pi}{4}$. This is why $\theta+\pi$ instead of $\theta$ is used in the output of the function. For the sake of a function, one could define $\theta$ as the angle of the vector $(y_1-x_1,y_2-x_2,0)$ with the $X_1$-axis and replace $\theta+\pi$ with $\theta$ in the output of the function.

In the code, one could replace theta = ArcTan[(xyz[[1]] - XYZ[[1]]), (xyz[[2]] - XYZ[[2]])] with theta = ArcTan[(XYZ[[1]] - xyz[[1]]), (XYZ[[2]] - xyz[[2]])] and theta + Pi in the Cos and Sin functions with theta.

Having not checked it though, I think one can simply replace Cos[theta+Pi] with XYZ[[1]]-xyz[[1]] and Sin[theta+Pi] with XYZ[[2]]-xyz[[2]] so that one does not need to introduce the variable theta at all.

  • As the document says,

Compile[{{x1,t1,n1},…},expr] assumes that xi is a rank ni array of objects, each of a type that matches ti.

Hence, {xyz,_Real,1} means xyz is a rank 1 array of "real numbers". Since xyz is a vector, xyz[[1]] means the first component of xyz. Therefore, if xyz={2,4,3}, then xyz[[1]]=2.

  • The expr in Compile[{{x1,t1,n1},…},expr] is given by the block of Module, a simple example of which for seeing how it works could be

     f=Module[{r=x,theta=y},{r,theta,r+theta}];
    
  • Here is how the function really works. Given $x=(x_1,x_2,x_3)$ and $y=(y_1,y_2,y_3)$ in $\mathbb{R}^3$, the output of the function is $$ \bigg(\frac{r(1+x_3)}{1+x_3-y_3}\cos(\theta+\pi)+x_1, \frac{r(1+x_3)}{1+x_3-y_3}\sin(\theta+\pi)+x_2,0\bigg) $$ where $$ r:=\sqrt{(x_1-y_1)^2+(x_2-y_2)^2},\quad \theta:=\arctan\frac{x_2-y_2}{x_1-y_1}. $$

The coordinate of the center of the sphere $S$ is given by $x=(x_1,x_2,x_3)$ and the radius of the sphere is $1$. This makes sense since the output of the function is of the form $(R\cos\psi+x_1,R\sin\psi+x_2,0)$, which implies that $x_1,x_2$ are the first two coordinates of the center of the sphere.

On the other hand, $y=(y_1,y_2,y_3)$ is the coordinate of a point on the sphere. The output of the function gives the coordinate of the "sterographic projection" of $y$ (the intersection of the line (which goes through $y$ and the north pole of the sphere) with the complex plane). When $x=(0,0,0),$ the function coincides with the one defined in Wikipedia.


One needs to be careful with the definition $\theta$ since in Mathematica, ArcTan[x,y] is different from the function $\arctan\frac{y}{x}$. For instance one has in Mathematica ArcTan[1,1]=$\frac{\pi}{4}$ and ArcTan[-1,-1]=$\frac{-3\pi}{4}$. This is why $\theta+\pi$ instead of $\theta$ is used in the output of the function. For the sake of a function, one could define $\theta$ as the angle of the vector $(y_1-x_1,y_2-x_2,0)$ with the $X_1$-axis and replace $\theta+\pi$ with $\theta$ in the output of the function.

In the code, one could replace theta = ArcTan[(xyz[[1]] - XYZ[[1]]), (xyz[[2]] - XYZ[[2]])] with theta = ArcTan[(XYZ[[1]] - xyz[[1]]), (XYZ[[2]] - xyz[[2]])] and theta + Pi in the Cos and Sin functions with theta.

Having not checked it though, I think one can simply replace Cos[theta+Pi] with XYZ[[1]]-xyz[[1]] and Sin[theta+Pi] with XYZ[[2]]-xyz[[2]] so that one does not need to introduce the variable theta at all.

added 215 characters in body
Source Link
user664
user664
  • As the document says,

Compile[{{x1,t1,n1},…},expr] assumes that xi is a rank ni array of objects, each of a type that matches ti.

Hence, {xyz,_Real,1} means xyz is a rank 1 array of "real numbers". Since xyz is a vector, xyz[[1]] means the first component of xyz. Therefore, if xyz={2,4,3}, then xyz[[1]]=2.

  • The expr in Compile[{{x1,t1,n1},…},expr] is given by the block of Module, a simple example of which for seeing how it works could be

     f=Module[{r=x,theta=y},{r,theta,r+theta}];
    
  • Here is how the function really works. Given $x=(x_1,x_2,x_3)$ and $y=(y_1,y_2,y_3)$ in $\mathbb{R}^3$, the output of the function is $$ \bigg(\frac{r(1+x_3)}{1+x_3-y_3}\cos(\theta+\pi)+x_1, \frac{r(1+x_3)}{1+x_3-y_3}\sin(\theta+\pi)+x_2,0\bigg) $$ where $$ r:=\sqrt{(x_1-y_1)^2+(x_2-y_2)^2},\quad \theta:=\arctan\frac{x_2-y_2}{x_1-y_1}. $$

The coordinate of the center of the sphere $S$ is given by $x=(x_1,x_2,x_3)$ and the radius of the sphere is $1$. This makes sense since the output of the function is of the form $(R\cos\psi+x_1,R\sin\psi+x_2,0)$, which implies that $x_1,x_2$ are the first two coordinates of the center of the sphere.

On the other hand, $y=(y_1,y_2,y_3)$ is the coordinate of a point on the sphere. The output of the function gives the coordinate of the "sterographic projection" of $y$ (the intersection of the line (which goes through $y$ and the north pole of the sphere) with the complex plane). When $x=(0,0,0),$ the function coincides with the one defined in Wikipedia.


One needs to be careful of the definition $\theta$ since in Mathematica, ArcTan[x,y] is different from the function $\arctan\frac{y}{x}$. For instance one has in Mathematica ArcTan[1,1]=$\frac{\pi}{4}$ and ArcTan[-1,-1]=$\frac{-3\pi}{4}$. This is why $\theta+\pi$ instead of $\theta$ is used in the output of the function. For the sake of a function, one could define $\theta$ as the angle of the vector $(y_1-x_1,y_2-x_2,0)$ with the $X_1$-axis and replace $\theta+\pi$ with $\theta$ in the output of the function.

In the code, one could replace theta = ArcTan[(xyz[[1]] - XYZ[[1]]), (xyz[[2]] - XYZ[[2]])] with theta = ArcTan[(XYZ[[1]] - xyz[[1]]), (XYZ[[2]] - xyz[[2]])] and theta + Pi in the Cos and Sin functions with theta.

Having not checked it though, I think one can simply replace Cos[theta+Pi] with XYZ[[1]]-xyz[[1]] and Sin[theta+Pi] with XYZ[[2]]-xyz[[2]] so that one does not need to introduce the variable theta at all.

  • As the document says,

Compile[{{x1,t1,n1},…},expr] assumes that xi is a rank ni array of objects, each of a type that matches ti.

Hence, {xyz,_Real,1} means xyz is a rank 1 array of "real numbers". Since xyz is a vector, xyz[[1]] means the first component of xyz. Therefore, if xyz={2,4,3}, then xyz[[1]]=2.

  • The expr in Compile[{{x1,t1,n1},…},expr] is given by the block of Module, a simple example of which for seeing how it works could be

     f=Module[{r=x,theta=y},{r,theta,r+theta}];
    
  • Here is how the function really works. Given $x=(x_1,x_2,x_3)$ and $y=(y_1,y_2,y_3)$ in $\mathbb{R}^3$, the output of the function is $$ \bigg(\frac{r(1+x_3)}{1+x_3-y_3}\cos(\theta+\pi)+x_1, \frac{r(1+x_3)}{1+x_3-y_3}\sin(\theta+\pi)+x_2,0\bigg) $$ where $$ r:=\sqrt{(x_1-y_1)^2+(x_2-y_2)^2},\quad \theta:=\arctan\frac{x_2-y_2}{x_1-y_1}. $$

The coordinate of the center of the sphere $S$ is given by $x=(x_1,x_2,x_3)$ and the radius of the sphere is $1$. This makes sense since the output of the function is of the form $(R\cos\psi+x_1,R\sin\psi+x_2,0)$, which implies that $x_1,x_2$ are the first two coordinates of the center of the sphere.

On the other hand, $y=(y_1,y_2,y_3)$ is the coordinate of a point on the sphere. The output of the function gives the coordinate of the "sterographic projection" of $y$ (the intersection of the line (which goes through $y$ and the north pole of the sphere) with the complex plane). When $x=(0,0,0),$ the function coincides with the one defined in Wikipedia.


One needs to be careful of the definition $\theta$ since in Mathematica, ArcTan[x,y] is different from the function $\arctan\frac{y}{x}$. For instance one has in Mathematica ArcTan[1,1]=$\frac{\pi}{4}$ and ArcTan[-1,-1]=$\frac{-3\pi}{4}$. This is why $\theta+\pi$ instead of $\theta$ is used in the output of the function. For the sake of a function, one could define $\theta$ as the angle of the vector $(y_1-x_1,y_2-x_2,0)$ with the $X_1$-axis and replace $\theta+\pi$ with $\theta$ in the output of the function.

In the code, one could replace theta = ArcTan[(xyz[[1]] - XYZ[[1]]), (xyz[[2]] - XYZ[[2]])] with theta = ArcTan[(XYZ[[1]] - xyz[[1]]), (XYZ[[2]] - xyz[[2]])] and theta + Pi in the Cos and Sin functions with theta.

  • As the document says,

Compile[{{x1,t1,n1},…},expr] assumes that xi is a rank ni array of objects, each of a type that matches ti.

Hence, {xyz,_Real,1} means xyz is a rank 1 array of "real numbers". Since xyz is a vector, xyz[[1]] means the first component of xyz. Therefore, if xyz={2,4,3}, then xyz[[1]]=2.

  • The expr in Compile[{{x1,t1,n1},…},expr] is given by the block of Module, a simple example of which for seeing how it works could be

     f=Module[{r=x,theta=y},{r,theta,r+theta}];
    
  • Here is how the function really works. Given $x=(x_1,x_2,x_3)$ and $y=(y_1,y_2,y_3)$ in $\mathbb{R}^3$, the output of the function is $$ \bigg(\frac{r(1+x_3)}{1+x_3-y_3}\cos(\theta+\pi)+x_1, \frac{r(1+x_3)}{1+x_3-y_3}\sin(\theta+\pi)+x_2,0\bigg) $$ where $$ r:=\sqrt{(x_1-y_1)^2+(x_2-y_2)^2},\quad \theta:=\arctan\frac{x_2-y_2}{x_1-y_1}. $$

The coordinate of the center of the sphere $S$ is given by $x=(x_1,x_2,x_3)$ and the radius of the sphere is $1$. This makes sense since the output of the function is of the form $(R\cos\psi+x_1,R\sin\psi+x_2,0)$, which implies that $x_1,x_2$ are the first two coordinates of the center of the sphere.

On the other hand, $y=(y_1,y_2,y_3)$ is the coordinate of a point on the sphere. The output of the function gives the coordinate of the "sterographic projection" of $y$ (the intersection of the line (which goes through $y$ and the north pole of the sphere) with the complex plane). When $x=(0,0,0),$ the function coincides with the one defined in Wikipedia.


One needs to be careful of the definition $\theta$ since in Mathematica, ArcTan[x,y] is different from the function $\arctan\frac{y}{x}$. For instance one has in Mathematica ArcTan[1,1]=$\frac{\pi}{4}$ and ArcTan[-1,-1]=$\frac{-3\pi}{4}$. This is why $\theta+\pi$ instead of $\theta$ is used in the output of the function. For the sake of a function, one could define $\theta$ as the angle of the vector $(y_1-x_1,y_2-x_2,0)$ with the $X_1$-axis and replace $\theta+\pi$ with $\theta$ in the output of the function.

In the code, one could replace theta = ArcTan[(xyz[[1]] - XYZ[[1]]), (xyz[[2]] - XYZ[[2]])] with theta = ArcTan[(XYZ[[1]] - xyz[[1]]), (XYZ[[2]] - xyz[[2]])] and theta + Pi in the Cos and Sin functions with theta.

Having not checked it though, I think one can simply replace Cos[theta+Pi] with XYZ[[1]]-xyz[[1]] and Sin[theta+Pi] with XYZ[[2]]-xyz[[2]] so that one does not need to introduce the variable theta at all.

Source Link
user664
user664

  • As the document says,

Compile[{{x1,t1,n1},…},expr] assumes that xi is a rank ni array of objects, each of a type that matches ti.

Hence, {xyz,_Real,1} means xyz is a rank 1 array of "real numbers". Since xyz is a vector, xyz[[1]] means the first component of xyz. Therefore, if xyz={2,4,3}, then xyz[[1]]=2.

  • The expr in Compile[{{x1,t1,n1},…},expr] is given by the block of Module, a simple example of which for seeing how it works could be

     f=Module[{r=x,theta=y},{r,theta,r+theta}];
    
  • Here is how the function really works. Given $x=(x_1,x_2,x_3)$ and $y=(y_1,y_2,y_3)$ in $\mathbb{R}^3$, the output of the function is $$ \bigg(\frac{r(1+x_3)}{1+x_3-y_3}\cos(\theta+\pi)+x_1, \frac{r(1+x_3)}{1+x_3-y_3}\sin(\theta+\pi)+x_2,0\bigg) $$ where $$ r:=\sqrt{(x_1-y_1)^2+(x_2-y_2)^2},\quad \theta:=\arctan\frac{x_2-y_2}{x_1-y_1}. $$

The coordinate of the center of the sphere $S$ is given by $x=(x_1,x_2,x_3)$ and the radius of the sphere is $1$. This makes sense since the output of the function is of the form $(R\cos\psi+x_1,R\sin\psi+x_2,0)$, which implies that $x_1,x_2$ are the first two coordinates of the center of the sphere.

On the other hand, $y=(y_1,y_2,y_3)$ is the coordinate of a point on the sphere. The output of the function gives the coordinate of the "sterographic projection" of $y$ (the intersection of the line (which goes through $y$ and the north pole of the sphere) with the complex plane). When $x=(0,0,0),$ the function coincides with the one defined in Wikipedia.


One needs to be careful of the definition $\theta$ since in Mathematica, ArcTan[x,y] is different from the function $\arctan\frac{y}{x}$. For instance one has in Mathematica ArcTan[1,1]=$\frac{\pi}{4}$ and ArcTan[-1,-1]=$\frac{-3\pi}{4}$. This is why $\theta+\pi$ instead of $\theta$ is used in the output of the function. For the sake of a function, one could define $\theta$ as the angle of the vector $(y_1-x_1,y_2-x_2,0)$ with the $X_1$-axis and replace $\theta+\pi$ with $\theta$ in the output of the function.

In the code, one could replace theta = ArcTan[(xyz[[1]] - XYZ[[1]]), (xyz[[2]] - XYZ[[2]])] with theta = ArcTan[(XYZ[[1]] - xyz[[1]]), (XYZ[[2]] - xyz[[2]])] and theta + Pi in the Cos and Sin functions with theta.