tmp
This commit is contained in:
parent
14022000c9
commit
27aff7e2f5
@ -31,7 +31,7 @@ using namespace gctl;
|
|||||||
|
|
||||||
int main(int argc, char const *argv[]) try
|
int main(int argc, char const *argv[]) try
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
dsv_io tc;
|
dsv_io tc;
|
||||||
tc.delimeter('|');
|
tc.delimeter('|');
|
||||||
tc.head_number(1);
|
tc.head_number(1);
|
||||||
@ -48,23 +48,24 @@ int main(int argc, char const *argv[]) try
|
|||||||
//tc2.head_records(tc.head_records());
|
//tc2.head_records(tc.head_records());
|
||||||
tc2.delimeter('|');
|
tc2.delimeter('|');
|
||||||
tc2.save_text("out");
|
tc2.save_text("out");
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
geodsv_io tc;
|
geodsv_io tc;
|
||||||
tc.load_text("tmp/topo", ".txt", ColumnHead);
|
tc.load_text("tmp/topo", ".txt", ColHead);
|
||||||
tc.set_column_names({"x (m)", "y (m)", "elev (m)"});
|
tc.column_names({"x (m)", "y (m)", "elev (m)"});
|
||||||
tc.set_column_type(Float, "x (m)");
|
tc.column_type(Float, "x (m)");
|
||||||
tc.set_column_type(Float, "y (m)");
|
tc.column_type(Float, "y (m)");
|
||||||
tc.set_column_type(Float, "elev (m)");
|
tc.column_type(Float, "elev (m)");
|
||||||
|
|
||||||
array<point3dc> topo;
|
array<point3dc> topo;
|
||||||
tc.get_column_point3dc(topo, 1, 2, 3);
|
tc.get_column_point3dc(topo, 1, 2, 3);
|
||||||
|
|
||||||
std::clog << std::setprecision(11) << topo.front().z << "\n";
|
std::clog << std::setprecision(11) << topo.front().z << "\n";
|
||||||
std::clog << topo.back().x << "," << topo.back().y << "," << topo.back().z << "\n";
|
std::clog << topo.back().x << "," << topo.back().y << "," << topo.back().z << "\n";
|
||||||
display_vector(tc.get_tags(), std::clog, '\n');
|
display_vector(tc.tags(), std::clog, '\n');
|
||||||
display_vector(tc.get_annotoations(), std::clog, '\n');
|
display_vector(tc.annotations(), std::clog, '\n');
|
||||||
display_vector(tc.get_head_records(), std::clog, '\n');
|
display_vector(tc.head_records(), std::clog, '\n');
|
||||||
|
|
||||||
//tc.column_output("C3", Disable);
|
//tc.column_output("C3", Disable);
|
||||||
|
|
||||||
@ -72,30 +73,34 @@ int main(int argc, char const *argv[]) try
|
|||||||
tc.get_column(elev, "elev (m)");
|
tc.get_column(elev, "elev (m)");
|
||||||
elev.for_each([](double &d, size_t i){d += 100.0;});
|
elev.for_each([](double &d, size_t i){d += 100.0;});
|
||||||
|
|
||||||
tc.add_column(2, "elev_plus");
|
tc.add_column("elev_plus", 2);
|
||||||
tc.fill_column(elev, "elev_plus");
|
tc.fill_column(elev, "elev_plus");
|
||||||
|
|
||||||
tc.add_column(-1, "dist");
|
tc.add_column("dist", -1);
|
||||||
tc.cal_column("dist := sqrt(C1*C1 + C3*C3)", {"dist", "C1", "C3"});
|
tc.cal_column("dist := sqrt(C1*C1 + C3*C3)", {"dist", "C1", "C3"});
|
||||||
|
|
||||||
tc.add_row(3);
|
tc.add_row("", 3);
|
||||||
tc.fill_row(array<double>{5.5, 4.4, 3.3, 2.2, 1.1}, 3);
|
tc.fill_row(array<double>{5.5, 4.4, 3.3, 2.2, 1.1}, 3);
|
||||||
|
|
||||||
geodsv_io out_table;
|
tc.cal_column("dist > 1000", {"x (m)", "y (m)", "elev (m)"});
|
||||||
tc.filt_column("dist > 1000", {"dist"}, {"x (m)", "y (m)", "elev (m)"}, out_table);
|
|
||||||
out_table.save_text("out2");
|
|
||||||
|
|
||||||
_1s_vector s = tc.get_tags();
|
_1s_vector s = tc.tags();
|
||||||
s.push_back("Elev = 1000");
|
s.push_back("Elev = 1000");
|
||||||
tc.set_tags(s);
|
tc.tags(s);
|
||||||
tc.save_csv("out");
|
tc.save_csv("out");
|
||||||
|
|
||||||
double c = 4.25242153654;
|
double c = 4.25242153654;
|
||||||
tc.cell(c, 2, 1, 12);
|
tc.cell(c, 2, 1, 12);
|
||||||
std::clog << std::setprecision(12) << tc.cell<double>(2, 1) << "\n";
|
std::clog << std::setprecision(12) << tc.cell<double>(2, 1) << "\n";
|
||||||
|
|
||||||
tc.info();
|
tc.info(ColHead);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
dsv_io tio;
|
||||||
|
_1d_array wgt;
|
||||||
|
tio.load_text("data/table_sample", ".txt");
|
||||||
|
tio.get_column(wgt, 4);
|
||||||
|
wgt.show();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
catch(std::exception &e)
|
catch(std::exception &e)
|
||||||
|
@ -64,9 +64,9 @@ void average_radian_spec(const array<double> &in_freq, const array<double> &in_p
|
|||||||
|
|
||||||
if (!bin.empty())
|
if (!bin.empty())
|
||||||
{
|
{
|
||||||
bin_arr.import_vector(bin);
|
vector2array(bin, bin_arr);
|
||||||
out_power[i] = bin_arr.mean();
|
out_power[i] = mean(bin_arr);
|
||||||
out_std[i] = bin_arr.std();
|
out_std[i] = gctl::std(bin_arr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -83,10 +83,10 @@ int main(int argc, char const *argv[]) try
|
|||||||
_2d_matrix sig(M, N);
|
_2d_matrix sig(M, N);
|
||||||
_1d_array X(N), Y(M);
|
_1d_array X(N), Y(M);
|
||||||
_1d_array U(N), V(M);
|
_1d_array U(N), V(M);
|
||||||
X.sequence(-1.0, dT);
|
sequence(X, -1.0, dT);
|
||||||
Y.sequence(-1.0, dT);
|
sequence(Y, -1.0, dT);
|
||||||
U.sequence(-1.0*freq, 2.0*freq/(N - 1));
|
sequence(U, -1.0*freq, 2.0*freq/(N - 1));
|
||||||
V.sequence(-1.0*freq, 2.0*freq/(M - 1));
|
sequence(V, -1.0*freq, 2.0*freq/(M - 1));
|
||||||
|
|
||||||
double t;
|
double t;
|
||||||
double f1 = 40.0;
|
double f1 = 40.0;
|
||||||
@ -129,7 +129,7 @@ int main(int argc, char const *argv[]) try
|
|||||||
|
|
||||||
_1d_array out_freq, out_power, out_std;
|
_1d_array out_freq, out_power, out_std;
|
||||||
out_freq.resize(150);
|
out_freq.resize(150);
|
||||||
out_freq.sequence(1.0, 1.0);
|
sequence(out_freq, 1.0, 1.0);
|
||||||
average_radian_spec(pro_freq, pro_spec, out_freq, out_power, out_std);
|
average_radian_spec(pro_freq, pro_spec, out_freq, out_power, out_std);
|
||||||
|
|
||||||
std::ofstream ofile;
|
std::ofstream ofile;
|
||||||
|
@ -51,7 +51,7 @@ int main(int argc, char const *argv[]) try
|
|||||||
// Create input signal
|
// Create input signal
|
||||||
int snum = int(10.13*fs);
|
int snum = int(10.13*fs);
|
||||||
gctl::array<double> t(snum), signal(snum);
|
gctl::array<double> t(snum), signal(snum);
|
||||||
t.sequence(0.0, 10.13/(snum - 1));
|
sequence(t, 0.0, 10.13/(snum - 1));
|
||||||
|
|
||||||
for (size_t i = 0; i < t.size(); i++)
|
for (size_t i = 0; i < t.size(); i++)
|
||||||
{
|
{
|
||||||
|
@ -58,7 +58,7 @@ int main(int argc, char const *argv[]) try
|
|||||||
// Create input signal
|
// Create input signal
|
||||||
int snum = int(10.13*fs);
|
int snum = int(10.13*fs);
|
||||||
gctl::array<double> t(snum), signal(snum);
|
gctl::array<double> t(snum), signal(snum);
|
||||||
t.sequence(0.0, 10.13/(snum - 1));
|
sequence(t, 0.0, 10.13/(snum - 1));
|
||||||
|
|
||||||
for (size_t i = 0; i < t.size(); i++)
|
for (size_t i = 0; i < t.size(); i++)
|
||||||
{
|
{
|
||||||
|
@ -48,7 +48,7 @@ int main(int argc, char const *argv[])
|
|||||||
A[3][1] = 1;
|
A[3][1] = 1;
|
||||||
|
|
||||||
gctl::array<double> x(3), y(3), m(3);
|
gctl::array<double> x(3), y(3), m(3);
|
||||||
x.random_float(-1.0, 1.0, gctl::RdUniform, 452);
|
random_float(x, -1.0, 1.0, gctl::RdUniform, 452);
|
||||||
gctl::matvec(y, A, x);
|
gctl::matvec(y, A, x);
|
||||||
|
|
||||||
cout<<"A(" << A.row_size() << ", " << A.col_size() << ") = " <<endl;
|
cout<<"A(" << A.row_size() << ", " << A.col_size() << ") = " <<endl;
|
||||||
|
@ -62,7 +62,7 @@ private:
|
|||||||
ex7::ex7()
|
ex7::ex7()
|
||||||
{
|
{
|
||||||
gctl::array<double> tmp(round(0.5*(N+1)*N));
|
gctl::array<double> tmp(round(0.5*(N+1)*N));
|
||||||
tmp.random_float(1.0, 2.0, gctl::RdUniform);
|
random_float(tmp, 1.0, 2.0, gctl::RdUniform);
|
||||||
|
|
||||||
size_t c = 0;
|
size_t c = 0;
|
||||||
kernel.resize(N, N);
|
kernel.resize(N, N);
|
||||||
@ -95,7 +95,7 @@ int main(int argc, char const *argv[])
|
|||||||
{
|
{
|
||||||
// 生成一组正演解
|
// 生成一组正演解
|
||||||
gctl::array<double> tmp(2*N);
|
gctl::array<double> tmp(2*N);
|
||||||
tmp.random_float(1.0, 2.0, gctl::RdUniform);
|
random_float(tmp, 1.0, 2.0, gctl::RdUniform);
|
||||||
|
|
||||||
cd_array fm(N);
|
cd_array fm(N);
|
||||||
for (size_t i = 0; i < N; i++)
|
for (size_t i = 0; i < N; i++)
|
||||||
|
@ -133,25 +133,25 @@ double ex8::LBFGS_Evaluate(const gctl::_1d_array &x, gctl::_1d_array &g)
|
|||||||
tmp -= obs1;
|
tmp -= obs1;
|
||||||
|
|
||||||
gctl::matvec(grad, k1, tmp, gctl::Trans);
|
gctl::matvec(grad, k1, tmp, gctl::Trans);
|
||||||
grad.scale(2.0/M);
|
grad *= 2.0/M;
|
||||||
|
|
||||||
AddSingleLoss(gctl::power2(tmp.module(gctl::L2))/M, grad);
|
AddSingleLoss(gctl::power2(module(tmp, gctl::L2))/M, grad);
|
||||||
|
|
||||||
gctl::matvec(tmp, k2, x);
|
gctl::matvec(tmp, k2, x);
|
||||||
tmp -= obs2;
|
tmp -= obs2;
|
||||||
|
|
||||||
gctl::matvec(grad, k2, tmp, gctl::Trans);
|
gctl::matvec(grad, k2, tmp, gctl::Trans);
|
||||||
grad.scale(2.0/M);
|
grad *= 2.0/M;
|
||||||
|
|
||||||
AddSingleLoss(gctl::power2(tmp.module(gctl::L2))/M, grad);
|
AddSingleLoss(gctl::power2(module(tmp, gctl::L2))/M, grad);
|
||||||
|
|
||||||
gctl::matvec(tmp, k3, x);
|
gctl::matvec(tmp, k3, x);
|
||||||
tmp -= obs3;
|
tmp -= obs3;
|
||||||
|
|
||||||
gctl::matvec(grad, k3, tmp, gctl::Trans);
|
gctl::matvec(grad, k3, tmp, gctl::Trans);
|
||||||
grad.scale(2.0/M);
|
grad *= 2.0/M;
|
||||||
|
|
||||||
AddSingleLoss(gctl::power2(tmp.module(gctl::L2))/M, grad);
|
AddSingleLoss(gctl::power2(module(tmp, gctl::L2))/M, grad);
|
||||||
|
|
||||||
return GradNormLoss(g);
|
return GradNormLoss(g);
|
||||||
}
|
}
|
||||||
@ -194,7 +194,7 @@ int main(int argc, char const *argv[])
|
|||||||
{
|
{
|
||||||
// 生成一组正演解
|
// 生成一组正演解
|
||||||
gctl::_1d_array fm(N);
|
gctl::_1d_array fm(N);
|
||||||
fm.random_float(1.0, 2.0, gctl::RdUniform);
|
random_float(fm, 1.0, 2.0, gctl::RdUniform);
|
||||||
|
|
||||||
ex8 test;
|
ex8 test;
|
||||||
|
|
||||||
|
@ -52,8 +52,8 @@ int main(int argc, char const *argv[])
|
|||||||
array<double> dist;
|
array<double> dist;
|
||||||
e.get_levy_distribution(dist);
|
e.get_levy_distribution(dist);
|
||||||
|
|
||||||
double m = dist.mean();
|
double m = mean(dist);
|
||||||
double s = dist.std();
|
double s = gctl::std(dist);
|
||||||
|
|
||||||
int c = 0;
|
int c = 0;
|
||||||
for (size_t i = 0; i < dist.size(); i++)
|
for (size_t i = 0; i < dist.size(); i++)
|
||||||
@ -61,11 +61,11 @@ int main(int argc, char const *argv[])
|
|||||||
if (dist[i] > m + 3*s) c++;
|
if (dist[i] > m + 3*s) c++;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout << "mean = " << dist.mean() << "\n";
|
std::cout << "mean = " << mean(dist) << "\n";
|
||||||
std::cout << "std = " << dist.std() << "\n";
|
std::cout << "std = " << gctl::std(dist) << "\n";
|
||||||
std::cout << "rms = " << dist.rms() << "\n";
|
std::cout << "rms = " << rms(dist) << "\n";
|
||||||
std::cout << "max = " << dist.max() << "\n";
|
std::cout << "max = " << max(dist) << "\n";
|
||||||
std::cout << "min = " << dist.min() << "\n";
|
std::cout << "min = " << min(dist) << "\n";
|
||||||
std::cout << "ratio = " << 5000.0*c/dist.size() << "\n";
|
std::cout << "ratio = " << 5000.0*c/dist.size() << "\n";
|
||||||
|
|
||||||
for (size_t i = 0; i < dist.size(); i++)
|
for (size_t i = 0; i < dist.size(); i++)
|
||||||
|
Loading…
Reference in New Issue
Block a user