More
This commit is contained in:
parent
e5cbdc825d
commit
eace365811
2 changed files with 13 additions and 13 deletions
8
.idea/.gitignore
generated
vendored
8
.idea/.gitignore
generated
vendored
|
|
@ -1,8 +0,0 @@
|
||||||
# 디폴트 무시된 파일
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
||||||
# 에디터 기반 HTTP 클라이언트 요청
|
|
||||||
/httpRequests/
|
|
||||||
# Datasource local storage ignored files
|
|
||||||
/dataSources/
|
|
||||||
/dataSources.local.xml
|
|
||||||
|
|
@ -21,10 +21,17 @@ template <typename T> ostream &operator<<(ostream &os, const vector<T> &v) {
|
||||||
return os;
|
return os;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vector<int> random_int_vector(size_t size) {
|
||||||
|
auto result = vector<int>();
|
||||||
|
for (size_t i = 0; i < size; i++) {
|
||||||
|
result.push_back(rand() % 100);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
vector<Real> random_real_vector(size_t size) {
|
vector<Real> random_real_vector(size_t size) {
|
||||||
auto result = vector<Real>();
|
auto result = vector<Real>();
|
||||||
for (int i = 0; i < size; i++) {
|
for (size_t i = 0; i < size; i++) {
|
||||||
result.push_back((double)rand() / (double)RAND_MAX);
|
result.push_back((double)rand() / (double)RAND_MAX);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -87,6 +94,7 @@ template <typename R> vector<R> poly_mult_basic(vector<R> &a, vector<R> &b) {
|
||||||
|
|
||||||
#define THRESHOLD 1
|
#define THRESHOLD 1
|
||||||
// TODO Reduce allocations
|
// TODO Reduce allocations
|
||||||
|
// Send this to professor
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A step of the Karatsuba function.
|
* A step of the Karatsuba function.
|
||||||
|
|
@ -130,8 +138,8 @@ vector<R> poly_mult_Karatsuba(vector<R> &a, vector<R> &b) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void basic_vs_Karatsuba(size_t size) {
|
void basic_vs_Karatsuba(size_t size) {
|
||||||
auto p = random_real_vector(size);
|
auto p = random_int_vector(size);
|
||||||
auto q = random_real_vector(size);
|
auto q = random_int_vector(size);
|
||||||
|
|
||||||
cout << "Degree " << size - 1 << endl;
|
cout << "Degree " << size - 1 << endl;
|
||||||
|
|
||||||
|
|
@ -161,8 +169,8 @@ int main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
auto p = random_real_vector(6);
|
auto p = random_int_vector(6);
|
||||||
auto q = random_real_vector(8);
|
auto q = random_int_vector(8);
|
||||||
cout << "P: " << p << endl;
|
cout << "P: " << p << endl;
|
||||||
cout << "Q: " << q << endl;
|
cout << "Q: " << q << endl;
|
||||||
cout << "basic P * Q: " << poly_mult_basic(p, q) << endl;
|
cout << "basic P * Q: " << poly_mult_basic(p, q) << endl;
|
||||||
|
|
|
||||||
Reference in a new issue