### BIO-SAVART LAW

/*A C code that returns the magnetic field at a mesh of points
*on the xy-plane (xp,yp) for a straight wire segment through which
*current passes. The total magnetic field used in this code
*has the form (cos(theta1)-cos(theha2))/(yp*r_mag)
*ignoring the constants permeability, pi and current I and
*taking them together as 1. Thus no need for trapezoid since
*the integral of Bio-Savart can be tractable!!!
*r_mag represents the distance between the dl segment and
*the point (xp,yp) where we will find the B*/
#include <stdio.h>
#include <math.h>
/*Global constant*/
#define L 3.0 /* length of the wire*/
double r_mag(double x, double xp, double yp) {
double rx;
rx=xp-x; /* x is any point on xprime*/
return sqrt(rx*rx+yp*yp);
}
main()
{ int i;
double xp,yp;
double B; /*the z component of mag-field that is total field.*/
FILE *fid;
fid=fopen("mag-field","w");
/*loop over xp and yp values*/
for (yp=-2.0;yp<=2.0;yp=yp+0.1)
for (xp=-1.5;xp<=1.5;xp=xp+0.1)
{ /* Form the function B*/
B=2*(xp-L/2)/(yp*r_mag(L/2,xp,yp));
fprintf(fid,"%10.6lf %10.6lf %10.6lf\n",xp,yp,B);
}
fclose(fid);
}

### Second Harmonic Generation N=1:21

gnuplot> set xrange [-180:180] gnuplot> set yrange [-180:180]

splot sin(cos(x*pi/180))*sin(cos(x*pi/180))/(cos(x*pi/180)*cos(x*pi/180))*sin(cos(y*pi/180))*sin(cos(y*pi/180))/(cos(y*pi/180)*cos(y*pi/180))+sin(cos((x+1)*pi/180))*sin(cos((x+1)*pi/180))/(cos((x+1)*pi/180)*cos((x+1)*pi/180))*sin(cos((y+1)*pi/180))*sin(cos((y+1)*pi/180))/(cos((y+1)*pi/180)*cos((y+1)*pi/180))+sin(cos((x+2)*pi/180))*sin(cos((x+2)*pi/180))/(cos((x+2)*pi/180)*cos((x+2)*pi/180))*sin(cos((y+2)*pi/180))*sin(cos((y+2)*pi/180))/(cos((y+2)*pi/180)*cos((y+2)*pi/180))+sin(cos((x+3)*pi/180))*sin(cos((x+3)*pi/180))/(cos((x+3)*pi/180)*cos((x+3)*pi/180))*sin(cos((y+3)*pi/180))*sin(cos((y+3)*pi/180))/(cos((y+3)*pi/180)*cos((y+3)*pi/180))+sin(cos((x+4)*pi/180))*sin(cos((x+4)*pi/180))/(cos((x+4)*pi/180)*cos((x+4)*pi/180))*sin(cos((y+4)*pi/180))*sin(cos((y+4)*pi/180))/(cos((y+4)*pi/180)*cos((y+4)*pi/180)) +sin(cos((x+5)*pi/180))*sin(cos((x+5)*pi/180))/(cos((x+5)*pi/180)*cos((x+5)*pi/180))*sin(cos((y+5)*pi/180))*sin(cos(…

### Second Harmonic Generation

gnuplot> set xrange [-180:180] gnuplot> set yrange [-180:180] gnuplot> set pm3d gnuplot> set hidden3d  gnuplot> set title 'SHG' gnuplot> splot sin(cos(x*pi/180))*sin(cos(x*pi/180))/(cos(x*pi/180)*cos(x*pi/180))*sin(cos(y*pi/180))*sin(cos(y*pi/180))/(cos(y*pi/180)*cos(y*pi/180)) title 'N=1
'

### QUANTUM CRYPTOGRAPHY HOMEWORK SOLUTIONS

Thank you Prof. Dr. İbrahim Yurdahan Güler