void MainWindow::plot2(QCustomPlot *customPlot) { QVector<double> x0(pts), y0(pts); update_w(w,1.0); double y_inc = 1.0; for (int i=0; i<pts; ++i) { x0[i] = (double)0.5*i/pts; y0[i] = y_inc*(w[i]); } order = get_order(); ui->order->setText(QApplication::translate("MainWindow", std::to_string(order).c_str(), 0)); ui->ripple->setText(QApplication::translate("MainWindow", std::to_string(ripple()).c_str(), 0)); ui->fc->setText(QApplication::translate("MainWindow", std::to_string(fc()).c_str(), 0)); customPlot->graph()->setData(x0, y0); customPlot->graph()->setLineStyle(QCPGraph::lsLine); //(QCPGraph::LineStyle)(rand()%5+1)); customPlot->graph()->setScatterStyle(QCPScatterStyle::ssNone); // (QCP::ScatterStyle)(rand()%9+1)); QPen graphPen; // graphPen.setColor(QColor(rand()%245+10, rand()%245+10, rand()%245+10)); //graphPen.setWidthF(rand()/(double)RAND_MAX*2+1); graph_counter++; graph_counter = graph_counter%9; graphPen.setColor(QColor(Qt::GlobalColor(5+graph_counter))); graphPen.setWidthF(2); customPlot->graph()->setPen(graphPen); customPlot->xAxis->setRange(0,0.5); customPlot->yAxis->setRange(-90,10); customPlot->legend->setVisible(true); // customPlot->setInteraction(QCustomPlot::iSelectPlottables); customPlot->graph()->setName(QString(shape.c_str())); customPlot->replot(); }
void MainWindow::plot3(QCustomPlot *customPlot) { QVector<double> x0(pts), y0(pts); update_w(w,1.0); double y_inc = 1.0; for (int i=0; i<pts; ++i) { x0[i] = (double)0.5*i/pts; y0[i] = y_inc*(w[i]); } customPlot->graph()->setData(x0, y0); customPlot->graph()->setLineStyle(QCPGraph::lsLine); customPlot->graph()->setScatterStyle(QCPScatterStyle::ssNone); // (QCP::ScatterStyle)(rand()%9+1)); QPen graphPen; graphPen.setColor(QColor(Qt::GlobalColor(5+graph_counter))); graphPen.setWidthF(2); customPlot->graph()->setPen(graphPen); customPlot->xAxis->setRange(0,0.5); customPlot->yAxis->setRange(-90,10); customPlot->legend->setVisible(true); // customPlot->setInteraction(QCustomPlot::iSelectPlottables); customPlot->graph()->setName(QString(shape.c_str())); customPlot->replot(); }
int lb_writestr_all(char **buf, int size, struct LineBuffer* lb) { if(lb->eol == 0) return 0; int eol = last_eol(lb); int n = write_buf(*buf, size, lb->line, eol); *buf += n; lb->eol = n; // pretend this was the first one. so update clears it and looks for next. return update_w(lb, n); }
int lb_writefd_all(int fd, struct LineBuffer* lb) { if(lb->eol == 0) return 0; int eol = last_eol(lb); int n = write(fd, lb->line, eol); if (n < 0) return errno; lb->eol = n; // pretend this was the first one. so update clears it and looks for next. return update_w(lb, n); }
void logistic_regression::one_round(int label,Sparse_Vector& x) { update_w(x); //-----------------------预测p-------------------------------- //x.poisson_filter(); double p = w.dot_sum(x); update_other(x,p,label); }
int multiuser_new::run_a() { int tone,user,t_line,runs=0; FILE* fp; bool last_run=false; reset_data(); //calc_ave_bits(); //calc_ave_xtalk(); /* for (int user=0;user<lines;user++) { double max=0; int line=0; for (int xtalker=0;xtalker<lines;xtalker++) { if (xtalker==user) continue; if (ave_xtalk[user][xtalker] > max) { max = ave_xtalk[user][xtalker]; line = xtalker; } } printf("Worst xtalker into line %d = line %d\n",user,line); } */ //exit(0); //for (int user=0;user<lines;user++) { // printf("rate target on line %d is %d\n",user,b_target[user]); //} do { iter_count++; reset_data(); init_cost_matrix(); //for (int user=0;user<lines;user++) { // printf("w[%d] = %4.2lf\n",user,w[user]); //} while(1) { min_cost(&tone,&user); printf("Min tone/user was %d/%d\n",tone,user); //getchar(); //if (tone == 115 && user == 1) { // getchar(); //} if(all_tones_full) { printf("All tones are full on iteration number %d\n",iter_count); break; } b[tone][user]++; // add bit to min cos tone b_total[user]++; total_bits++; //printf("Added a bit to user %d tone %d\n",user,tone); //print_vector(cost[tone],"Costs on current tone"); update_power(tone,user); //update power on tone //print_vector(p[tone],"p on tone"); //getchar(); print_vector(b_total,"b_total"); printf("total bits = %d\n",total_bits); print_vector(p_used,"p_used"); if (!greedy) update_wp(); //print_vector(wp,"wp"); //getchar(); if (graph_loading) write_current_stats(tone,user); /* if (b[tone][user] == MAXBITSPERTONE) { F[tone][user]=1; } if (!rate_targets_off) { if (b_total[user] == b_target[user]) { freeze_user(user); printf("just froze user %d cos he got his target\n",user); printf("Power used by user %d when frozen = %lf\n",user,p_used[user]); init_cost_matrix(); user_re_init[user]=true; } } */ /*for (int user=0;user<lines;user++) { if (user_frozen[user] == true && user_re_init[user] == false) { init_cost_matrix(); user_re_init[user]=true; } }*/ /* bool update=false; for (int user1=0;user1<lines;user1++) { if (wp[user1] > 1.1) { update=true; break; } } */ for (int user=0;user<lines;user++) { calc_delta_p(tone,user); // update delta_p on all lines for this tone //cost[tone][user] = cf(tone,user); } //print_vector(_delta_p[tone][user],"Delta of adding another bit"); for (int tone=0;tone<DMTCHANNELS;tone++) { for (int user=0;user<lines;user++) { cost[tone][user] = cf(tone,user); } } //print_vector(cost[tone],"New costs"); //getchar(); } for (int user=0;user<lines;user++) { printf("rate on line %d is %d\n",user,b_total[user]); } //getchar(); calc_lost_bits(); sort_lost_bits(); print_lost_bits(); if (0) { char tag[100]; sprintf(tag,"iteration%d",iter_count); init_lines(); calculate_snr(); for (int user=0;user<lines;user++) { write_mw_stats(user,tag); } } update_w(); //getchar(); } while(!finished()); if (all_rates_good()) { printf("All lines met their rate target\n"); } else { double sum=0; for (int user=0;user<lines;user++) { sum+=pow(b_total[user]-b_target[user],2); } printf("Total distance from target = %lf\n",sqrt(sum)); } //isb_optimise_p(); init_lines(); calculate_snr(); set_loading_algo(); printf("max lead = %6.4lf max lag = %6.4lf\n",max_lead,max_lag); if (graph_loading) { write_stats_totals(); } return 0; }
INT main(INT argc, CHAR *argv[]) { /********** MAIN PROGRAM ********************************* * Solve Laplace equation using Jacobi iteration method * * *********************************************************/ INT m = M_DEFAULT, mp, k, p, below, above; long iter=MAXSTEPS; REAL TOL=EPS_DEFAULT, del, gdel,start,finish,mytime; CHAR line[80]; REAL **v, **vt, **vnew; k = 0; p= 1; if(k == 0) { fprintf(OUTPUT," Number of args in command line, argc :\n"); fprintf(OUTPUT," argc = %d :\n", argc); if (argc >= 2) fprintf(OUTPUT," arg[1]= %s :\n", argv[1]); if (argc >= 3) fprintf(OUTPUT," arg[2]= %s :\n", argv[2]); if (argc >1){ m=atoi(argv[1]); m=MAX_M; } if (argc >2 ) { TOL= atof(argv[2]); TOL=EPS; } fprintf(OUTPUT,"Size of interior points, m :\n"); fprintf(OUTPUT,"m = %d\n",m); fprintf(OUTPUT,"Numerical accuracy, eps :\n"); fprintf(OUTPUT,"eps = %f\n",TOL); fprintf(OUTPUT,"Number of processes, p :\n"); fprintf(OUTPUT,"p = %d\n",p); start=-time(0); } mp = m/p; v = allocate_2D(m, mp); /* allocate mem for 2D array */ vt = allocate_2D(mp, m); vnew = allocate_2D(mp, m); gdel = 1.0; iter = 0; bc(m, mp, v, k, p); /* initialize and define B.C. for v */ transpose(m, mp, v, vt); /* solve for vt */ /* driven by need of update_bc_2 */ replicate(mp, m, vt, vnew); /* vnew = vt */ REAL ro = 1.0 - pow (PI / (2 * (m + 1)), 2); REAL w = 0; while (gdel > TOL) { /* iterate until error below threshold */ iter++; /* increment iteration counter */ if(iter > MAXSTEPS) { fprintf(OUTPUT,"Iteration terminated (exceeds %6d", MAXSTEPS); fprintf(OUTPUT," )\n"); return (0); /* nonconvergent solution */ } /* compute new solution according to the Jacobi scheme */ /*update_jacobi(mp, m, vt, vnew, &del); [> compute new vt <]*/ update_sor(mp, m, vt, vnew, &del, w); update_w(&w, ro); if (del > gdel) gdel = del; if( k == 0) { fprintf(OUTPUT,"iter,del,gdel: %6d, %lf %lf\n",iter,del,gdel); } update_bc_2( mp, m, vt, k, below, above); /* update b.c. */ } if (k == 0) { finish=time(0); mytime=start+finish; fprintf(OUTPUT,"Stopped at iteration %d\n",iter); fprintf(OUTPUT,"The maximum error = %f\n",gdel); fprintf(OUTPUT,"Time = %f\n",mytime); } if (FILE_OUT) { /* write v to file for use in MATLAB plots */ transpose(mp, m, vt, v); write_file( m, mp, v, k, p ); } free(v); free(vt); free(vnew); /* release allocated arrays */ return (0); }
int lb_writestr(char **buf, int size, struct LineBuffer* lb) { if(lb->eol == 0) return 0; int n = write_buf(*buf, size, lb->line, lb->eol); *buf += n; return update_w(lb, n); }
int lb_writefd(int fd, struct LineBuffer* lb) { if(lb->eol == 0) return 0; int n = write(fd, lb->line, lb->eol); if (n < 0) return errno; return update_w(lb, n); }