Data compression with lissajous curve

  • #1
I was hoping this c++ file could be adapted to use as data compression or encryption


Code:
#include <iostream>
#include <cmath>

using namespace std;
double asil(double t)
{
    cout<<"asil\n";
 cout<< cos(t) << endl;
 double two = 2.0;
 cout<< sin(sqrt(two)*t) << endl;


 return sin(sqrt(two)*t);
}

int main(){
    double one = 1;
    double four = 4;
    double pi = atan(one)*four;
    double tolerance = .00001;
//cout<<"dedede";

double m=1,n=1,t=1,x=1,y=1;



cout<<"enter x: " <<endl;
cin>>x;
cout<<"enter y: "<<endl;
cin>>y;
int i = 0;
while(

(sqrt(2)-tolerance)>((asin(y)+2*pi*m)/(acos(x)+2*pi*n))||
(sqrt(2)+tolerance)<((asin(y)+2*pi*m)/(acos(x)+2*pi*n)))
{
    if(i++ % 100000 == 0) asil(t);
/**
if( ((sqrt(2)+0.0001)>=((asin(y)+2*pi*m)/(acos(x)+2*pi*n)))
&&((sqrt(2)-0.0001)<=((asin(y)+2*pi*m)/(acos(x)+2*pi*n))) ){








 t=acos(x)+2*pi*n;
 cout<<t<<endl;
 }
else **/
 if(

(sqrt(2)-tolerance)>=((asin(y)+2*pi*m)/(acos(x)+2*pi*n))){
m=m+1;}

else if((sqrt(2)+tolerance)<=((asin(y)+2*pi*m)/(acos(x)+2*pi*n)))
{
n=n+1;}
}
 t=acos(x)+2*pi*n;
 cout<<t<<endl;
 asil(t);
return 0;
}
 
Last edited by a moderator:

Answers and Replies

  • #2
berkeman
Mentor
59,054
9,156
I was hoping this c++ file could be adapted to use as data compression or encryption


Code:
#include <iostream>
#include <cmath>

using namespace std;
double asil(double t)
{
    cout<<"asil\n";
 cout<< cos(t) << endl;
 double two = 2.0;
 cout<< sin(sqrt(two)*t) << endl;


 return sin(sqrt(two)*t);
}

int main(){
    double one = 1;
    double four = 4;
    double pi = atan(one)*four;
    double tolerance = .00001;
//cout<<"dedede";

double m=1,n=1,t=1,x=1,y=1;



cout<<"enter x: " <<endl;
cin>>x;
cout<<"enter y: "<<endl;
cin>>y;
int i = 0;
while(

(sqrt(2)-tolerance)>((asin(y)+2*pi*m)/(acos(x)+2*pi*n))||
(sqrt(2)+tolerance)<((asin(y)+2*pi*m)/(acos(x)+2*pi*n)))
{
    if(i++ % 100000 == 0) asil(t);
/**
if( ((sqrt(2)+0.0001)>=((asin(y)+2*pi*m)/(acos(x)+2*pi*n)))
&&((sqrt(2)-0.0001)<=((asin(y)+2*pi*m)/(acos(x)+2*pi*n))) ){








 t=acos(x)+2*pi*n;
 cout<<t<<endl;
 }
else **/
 if(

(sqrt(2)-tolerance)>=((asin(y)+2*pi*m)/(acos(x)+2*pi*n))){
m=m+1;}

else if((sqrt(2)+tolerance)<=((asin(y)+2*pi*m)/(acos(x)+2*pi*n)))
{
n=n+1;}
}
 t=acos(x)+2*pi*n;
 cout<<t<<endl;
 asil(t);
return 0;
}
Welcome to the PF.

I added code tags to your post -- please use code tags to improve readability of code posted here at the PF. Thanks.

Also, it's a lot of work trying to decode your uncommented code. Could you explain what you are trying to do? Could you post links to the reading that you have been doing that suggests this code can be used for encryption?
 
  • Like
Likes Greg Bernhardt
  • #3
Welcome to the PF.

I added code tags to your post -- please use code tags to improve readability of code posted here at the PF. Thanks.

Also, it's a lot of work trying to decode your uncommented code. Could you explain what you are trying to do? Could you post links to the reading that you have been doing that suggests this code can be used for encryption?
I was trying to take two numbers between zero and one and compress them into one number in a way that you can use trig to get back the original two numbers.

Eg. X= cos t y=sin (sqrt2*t)



Plug in x and y. Then solve for t. You can use t later to get back x and y. Hopefully t is shorter to write than x and y.

I was also hoping it could be used for encryption.

Additionally, it's a reversible calculation. Unlike adding 2 plus 3 to get 5. Once you have 5, you can't tell if it came from 2 plus 3 or 1 plus 4.


Also it's a 1 to 2 mapping
 

Related Threads on Data compression with lissajous curve

  • Last Post
Replies
13
Views
2K
Replies
11
Views
328
  • Last Post
Replies
0
Views
3K
Replies
1
Views
2K
  • Last Post
Replies
7
Views
2K
Replies
10
Views
174
Replies
4
Views
11K
Replies
4
Views
12K
Replies
4
Views
1K
Top