static void show_doc(const gchar * word, gint cmd_num) { GeanyDocument *doc; const gchar *ftype; gchar *command; gchar *tmp; gboolean intern; doc = document_get_current(); g_return_if_fail(doc != NULL && doc->file_name != NULL); ftype = doc->file_type->name; command = config_get_command(ftype, cmd_num, &intern); if (EMPTY(command)) { g_free(command); return; } tmp = strstr(command, "%w"); if (tmp != NULL) { tmp[1] = 's'; setptr(command, g_strdup_printf(command, word)); } if (intern) { g_spawn_command_line_sync(command, &tmp, NULL, NULL, NULL); if (! EMPTY(tmp)) { show_output(tmp, "*DOC*", NULL, doc->file_type->id); } else { show_doc(word, cmd_num + 1); } g_free(tmp); } else { g_spawn_command_line_async(command, NULL); } g_free(command); }
int main(int argc, char **argv) { g_log_set_default_handler(logger, NULL); if (parse_options(argc, argv)) { return 1; } /* Set the loglevel (amount of messages to output) for libsigrok. */ if (sr_log_loglevel_set(opt_loglevel) != SR_OK) goto done; if (sr_init(&sr_ctx) != SR_OK) goto done; #ifdef HAVE_SRD /* Set the loglevel (amount of messages to output) for libsigrokdecode. */ if (srd_log_loglevel_set(opt_loglevel) != SRD_OK) goto done; if (opt_pds) { if (srd_init(NULL) != SRD_OK) goto done; if (srd_session_new(&srd_sess) != SRD_OK) { g_critical("Failed to create new decode session."); goto done; } if (register_pds(opt_pds, opt_pd_annotations) != 0) goto done; if (setup_pd_stack(opt_pds, opt_pd_stack, opt_pd_annotations) != 0) goto done; /* Only one output type is ever shown. */ if (opt_pd_binary) { if (setup_pd_binary(opt_pd_binary) != 0) goto done; if (srd_pd_output_callback_add(srd_sess, SRD_OUTPUT_BINARY, show_pd_binary, NULL) != SRD_OK) goto done; } else if (opt_pd_meta) { if (setup_pd_meta(opt_pd_meta) != 0) goto done; if (srd_pd_output_callback_add(srd_sess, SRD_OUTPUT_META, show_pd_meta, NULL) != SRD_OK) goto done; } else { if (opt_pd_annotations) if (setup_pd_annotations(opt_pd_annotations) != 0) goto done; if (srd_pd_output_callback_add(srd_sess, SRD_OUTPUT_ANN, show_pd_annotations, NULL) != SRD_OK) goto done; } } #endif if (opt_version) show_version(); else if (opt_input_format && opt_show) show_input(); else if (opt_output_format && opt_show) show_output(); else if (opt_transform_module && opt_show) show_transform(); else if (opt_scan_devs) show_dev_list(); #ifdef HAVE_SRD else if (opt_pds && opt_show) show_pd_detail(); #endif else if (opt_show) show_dev_detail(); else if (opt_input_file) load_input_file(); else if (opt_get) get_option(); else if (opt_set) set_options(); else if (opt_samples || opt_time || opt_frames || opt_continuous) run_session(); else show_help(); #ifdef HAVE_SRD if (opt_pds) srd_exit(); #endif done: if (sr_ctx) sr_exit(sr_ctx); return 0; }
int main(int argc,char ** argv) { int i; char * temp; build_defaults(); strip_out_standard_options(&argc,argv,show_help,show_version); potential_file = strip_out_assigned_argument(&argc,argv,"pg"); pal_file = strip_out_assigned_argument(&argc,argv,"pal_file"); if( (temp = strip_out_assigned_argument(&argc,argv,"gap")) != NULL ) gap_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"g")) != NULL ) gap_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"ext")) != NULL ) ext_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"e")) != NULL ) ext_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"matrix")) != NULL ) matrix_file = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"m")) != NULL ) matrix_file = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"s")) != NULL ) qstart_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"t")) != NULL ) qend_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"u")) != NULL ) tstart_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"v")) != NULL ) tend_str = temp; if( (strip_out_boolean_argument(&argc,argv,"trev")) == TRUE ) reverse = TRUE; if( (strip_out_boolean_argument(&argc,argv,"[no]newgene")) == TRUE ) use_new_stats = TRUE; if( (strip_out_boolean_argument(&argc,argv,"tfor")) == TRUE ){ if( reverse == TRUE ) { warn("You have specified both trev and tfor. Treating as both"); do_both = TRUE; reverse = FALSE; } else { reverse = FALSE; } } if( (temp = strip_out_assigned_argument(&argc,argv,"insert")) != NULL ) { if( strcmp(temp,"flat") == 0 ) { flat_insert = TRUE; } else { flat_insert = FALSE; } } if( (strip_out_boolean_argument(&argc,argv,"both")) == TRUE ) do_both = TRUE; if( (strip_out_boolean_argument(&argc,argv,"fembl")) == TRUE ) is_embl = TRUE; if( (strip_out_boolean_argument(&argc,argv,"tabs")) == TRUE ) target_abs = TRUE; pseudo = strip_out_boolean_argument(&argc,argv,"pseudo"); if( (temp = strip_out_assigned_argument(&argc,argv,"codon")) != NULL ) codon_file = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"gene")) != NULL ) gene_file = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"alg")) != NULL ) alg_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"kbyte")) != NULL ) kbyte_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"subs")) != NULL ) subs_string = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"indel")) != NULL ) indel_string = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"cfreq")) != NULL ) cfreq_string = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"splice")) != NULL ) { warn("deprecated command line option -splice. use -splice_gtag now"); splice_string = temp; } if( (temp = strip_out_assigned_argument(&argc,argv,"init")) != NULL ) startend_string = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"null")) != NULL ) null_string = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"intron")) != NULL ) intron_string = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"alln")) != NULL ) allN_string = temp; if( (strip_out_boolean_argument(&argc,argv,"hmmer")) == TRUE ) use_tsm = TRUE; if( (strip_out_boolean_argument(&argc,argv,"intie")) == TRUE ) use_tied_model = TRUE; if( (temp = strip_out_assigned_argument(&argc,argv,"hname")) != NULL ) hmm_name = temp; if( (strip_out_boolean_argument(&argc,argv,"pretty")) != FALSE ) show_pretty = TRUE; if( (strip_out_boolean_argument(&argc,argv,"gff")) != FALSE ) show_gff = TRUE; if( (strip_out_boolean_argument(&argc,argv,"diana")) != FALSE ) show_diana = TRUE; if( (strip_out_boolean_argument(&argc,argv,"embl")) != FALSE ) show_embl = TRUE; if( (strip_out_boolean_argument(&argc,argv,"genes")) != FALSE ) show_pretty_gene = TRUE; if( (strip_out_boolean_argument(&argc,argv,"genesf")) != FALSE ) show_supp_gene = TRUE; if( (strip_out_boolean_argument(&argc,argv,"para")) != FALSE ) show_para = TRUE; if( (strip_out_boolean_argument(&argc,argv,"trans")) != FALSE ) show_trans = TRUE; if( (strip_out_boolean_argument(&argc,argv,"pep")) != FALSE ) show_pep = TRUE; if( (strip_out_boolean_argument(&argc,argv,"cdna")) != FALSE ) show_cdna = TRUE; if( (strip_out_boolean_argument(&argc,argv,"sum")) != FALSE ) show_match_sum = TRUE; if( (strip_out_boolean_argument(&argc,argv,"alb")) != FALSE ) show_AlnBlock = TRUE; if( (strip_out_boolean_argument(&argc,argv,"ace")) != FALSE ) show_ace = TRUE; if( (strip_out_boolean_argument(&argc,argv,"pal")) != FALSE ) show_PackAln = TRUE; if( (strip_out_boolean_argument(&argc,argv,"gener")) != FALSE ) show_gene_plain = TRUE; if( (strip_out_boolean_argument(&argc,argv,"over")) != FALSE ) show_overlap = TRUE; if( (temp = strip_out_assigned_argument(&argc,argv,"divide")) != NULL ) divide_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"block")) != NULL ) main_block_str = temp; dpri = new_DPRunImpl_from_argv(&argc,argv); gmp = new_GeneModelParam_from_argv(&argc,argv); ppp = new_PhasedProteinPara_from_argv(&argc,argv); gwrp = new_GeneWiseRunPara_from_argv(&argc,argv); strip_out_remaining_options_with_warning(&argc,argv); if( argc != 3 ) { warn("Wrong number of arguments (expect 2)!\n"); if( argc > 1 ){ warn("Arg line looked like (after option processing)"); for(i=1;i<argc;i++) { fprintf(stderr," %s\n",argv[i]); } } show_short_help(); } if( show_embl == FALSE && show_diana == FALSE && show_gff == FALSE && show_overlap == FALSE && show_pretty_gene == FALSE && show_match_sum == FALSE && show_ace == FALSE && show_gene_plain == FALSE && show_pretty == FALSE && show_AlnBlock == FALSE && show_PackAln == FALSE && show_pep == FALSE ) { show_pretty = TRUE; show_para = TRUE; } dna_seq_file = argv[2]; if( use_tsm == FALSE) protein_file = argv[1]; else hmm_file = argv[1]; if( build_objects() == FALSE) fatal("Could not build objects!"); if( show_para == TRUE) { show_parameters(); } if( build_alignment() == FALSE) fatal("Could not build alignment!"); if( show_output() == FALSE) fatal("Could not show alignment. Sorry!"); if( do_both == TRUE) { reverse_target(); if( build_alignment() == FALSE) fatal("Could not build alignment!"); if( show_output() == FALSE) fatal("Could not show alignment. Sorry!"); } free_temporary_objects(); free_io_objects(); return 0; }
int main(int argc,char ** argv) { int i; char * temp; build_defaults(); bootstrap_HMMer2(); strip_out_standard_options(&argc,argv,show_help,show_version); if( (temp = strip_out_assigned_argument(&argc,argv,"gap")) != NULL ) gap_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"g")) != NULL ) gap_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"ext")) != NULL ) ext_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"e")) != NULL ) ext_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"matrix")) != NULL ) matrix_file = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"m")) != NULL ) matrix_file = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"s")) != NULL ) qstart_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"t")) != NULL ) qend_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"aln")) != NULL ) aln_number_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"codon")) != NULL ) codon_file = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"alg")) != NULL ) alg_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"aalg")) != NULL ) aln_alg_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"cut")) != NULL ) search_cutoff_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"ecut")) != NULL ) evalue_search_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"subs")) != NULL ) subs_string = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"indel")) != NULL ) indel_string = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"init")) != NULL ) startend_string = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"alln")) != NULL ) allN_string = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"null")) != NULL ) null_string = temp; if( (strip_out_boolean_argument(&argc,argv,"dnas")) == TRUE ) use_single_dna = TRUE; if( (strip_out_boolean_argument(&argc,argv,"dnadb")) == TRUE ) use_single_dna = FALSE; if( (strip_out_boolean_argument(&argc,argv,"tfor")) == TRUE ) do_forward_only = TRUE; if( (strip_out_boolean_argument(&argc,argv,"flati")) == TRUE ) flat_insert = TRUE; if( (strip_out_boolean_argument(&argc,argv,"hmmer")) == TRUE ) use_tsm = TRUE; if( (strip_out_boolean_argument(&argc,argv,"pfam2")) == TRUE ) use_pfam1 = TRUE; if( (strip_out_boolean_argument(&argc,argv,"pfam")) == TRUE ) use_pfam2 = TRUE; if( (strip_out_boolean_argument(&argc,argv,"protein")) == TRUE ) use_single_pro = TRUE; if( (strip_out_boolean_argument(&argc,argv,"prodb")) == TRUE ) use_db_pro = TRUE; if( (temp = strip_out_assigned_argument(&argc,argv,"hname")) != NULL ) hmm_name = temp; if( (strip_out_boolean_argument(&argc,argv,"nohis")) != FALSE ) show_histogram = FALSE; if( (strip_out_boolean_argument(&argc,argv,"pretty")) != FALSE ) show_pretty = TRUE; if( (strip_out_boolean_argument(&argc,argv,"pep")) != FALSE ) show_pep = TRUE; if( (strip_out_boolean_argument(&argc,argv,"mul")) != FALSE ) make_anchored_aln = TRUE; if( (strip_out_boolean_argument(&argc,argv,"para")) != FALSE ) show_para = TRUE; if( (strip_out_boolean_argument(&argc,argv,"sum")) != FALSE ) show_match_sum = TRUE; if( (strip_out_boolean_argument(&argc,argv,"alb")) != FALSE ) show_AlnBlock = TRUE; if( (strip_out_boolean_argument(&argc,argv,"pal")) != FALSE ) show_PackAln = TRUE; if( (temp = strip_out_assigned_argument(&argc,argv,"divide")) != NULL ) divide_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"block")) != NULL ) main_block_str = temp; if( (temp = strip_out_assigned_argument(&argc,argv,"report")) != NULL ) report_str = temp; dbsi = new_DBSearchImpl_from_argv(&argc,argv); dpri = new_DPRunImpl_from_argv(&argc,argv); strip_out_remaining_options_with_warning(&argc,argv); if( argc != 3 ) { warn("Wrong number of arguments (expect 2)!\n"); if( argc > 1 ){ warn("Arg line looked like (after option processing)"); for(i=1;i<argc;i++) { fprintf(stderr," %s\n",argv[i]); } } show_short_help(); } if( show_pretty == FALSE && show_AlnBlock == FALSE && show_PackAln == FALSE && show_pep == FALSE ) { show_pretty = TRUE; show_para = TRUE; } if( use_db_pro == FALSE && use_single_pro == FALSE && use_tsm == FALSE && use_pfam1 == FALSE && use_pfam2 == FALSE ) { use_single_pro = TRUE; } if( use_single_pro == TRUE || use_tsm == TRUE ) { if( use_single_dna == TRUE ) fatal("one on one search. Shouldn't you use pcwise?"); search_mode = PC_SEARCH_S2DB; } else { if( use_single_dna == TRUE ) search_mode = PC_SEARCH_DB2S; else search_mode = PC_SEARCH_DB2DB; } if( evalue_search_str != NULL && search_mode != PC_SEARCH_S2DB ) { fatal("Trying to set a evalue cutoff on a non evalue based search. you can only use evalues in a protein HMM vs DNA database search (sorry!)"); } if( make_anchored_aln == TRUE && search_mode != PC_SEARCH_S2DB ) { fatal("Trying to make an anchored alignment and not in single search mode"); } if( make_anchored_aln == TRUE) { do_complete_analysis = TRUE; } /* pick up remaining args and do it */ dna_seq_file = argv[2]; protein_file = argv[1]; if( build_objects() == FALSE) fatal("Could not build objects!"); if( build_db_objects() == FALSE) fatal("Could not build database-ready objects!"); show_header(stdout); if( search_db() == FALSE) warn("Could not search database"); show_output(); free_objects(); return 0; }
/* do a command once for a specified file 'f' */ static int netpgp_cmd(netpgp_t *netpgp, prog_t *p, char *f) { const int cleartext = 1; unsigned maxsize; char *out; char *in; int ret; int cc; switch (p->cmd) { case ENCRYPT: if (f == NULL) { cc = stdin_to_mem(netpgp, &in, &out, &maxsize); ret = netpgp_encrypt_memory(netpgp, netpgp_getvar(netpgp, "userid"), in, cc, out, maxsize, p->armour); ret = show_output(out, ret, "Bad memory encryption"); free(in); free(out); return ret; } return netpgp_encrypt_file(netpgp, netpgp_getvar(netpgp, "userid"), f, p->output, p->armour); case DECRYPT: if (f == NULL) { cc = stdin_to_mem(netpgp, &in, &out, &maxsize); ret = netpgp_decrypt_memory(netpgp, in, cc, out, maxsize, 0); ret = show_output(out, ret, "Bad memory decryption"); free(in); free(out); return ret; } return netpgp_decrypt_file(netpgp, f, p->output, p->armour); case CLEARSIGN: case SIGN: if (f == NULL) { cc = stdin_to_mem(netpgp, &in, &out, &maxsize); ret = netpgp_sign_memory(netpgp, netpgp_getvar(netpgp, "userid"), in, cc, out, maxsize, p->armour, (p->cmd == CLEARSIGN) ? cleartext : !cleartext); ret = show_output(out, ret, "Bad memory signature"); free(in); free(out); return ret; } return netpgp_sign_file(netpgp, netpgp_getvar(netpgp, "userid"), f, p->output, p->armour, (p->cmd == CLEARSIGN) ? cleartext : !cleartext, p->detached); case VERIFY: case VERIFY_CAT: if (f == NULL) { cc = stdin_to_mem(netpgp, &in, &out, &maxsize); ret = netpgp_verify_memory(netpgp, in, cc, (p->cmd == VERIFY_CAT) ? out : NULL, (p->cmd == VERIFY_CAT) ? maxsize : 0, p->armour); ret = show_output(out, ret, "Bad memory verification"); free(in); free(out); return ret; } return netpgp_verify_file(netpgp, f, (p->cmd == VERIFY) ? NULL : (p->output) ? p->output : "-", p->armour); case LIST_PACKETS: if (f == NULL) { (void) fprintf(stderr, "%s: No filename provided\n", p->progname); return 0; } return netpgp_list_packets(netpgp, f, p->armour, NULL); case SHOW_KEYS: return netpgp_validate_sigs(netpgp); case HELP_CMD: default: print_usage(usage, p->progname); exit(EXIT_SUCCESS); } }
/* return TRUE if a command match, FALSE if not */ static TBOOLEAN show_two() { if (almost_equals(c_token, "p$lot")) { (void) putc('\n', stderr); show_plot(); c_token++; } else if (almost_equals(c_token, "par$ametric")) { (void) putc('\n', stderr); show_parametric(); c_token++; } else if (almost_equals(c_token, "poi$ntsize")) { (void) putc('\n', stderr); show_pointsize(); c_token++; } else if (almost_equals(c_token, "enc$oding")) { (void) putc('\n', stderr); show_encoding(); c_token++; } else if (almost_equals(c_token, "pol$ar")) { (void) putc('\n', stderr); show_polar(); c_token++; } else if (almost_equals(c_token, "an$gles")) { (void) putc('\n', stderr); show_angles(); c_token++; } else if (almost_equals(c_token, "ti$cs")) { (void) putc('\n', stderr); show_tics(TRUE, TRUE, TRUE, TRUE, TRUE); c_token++; } else if (almost_equals(c_token, "tim$estamp")) { (void) putc('\n', stderr); show_xyzlabel("time", &timelabel); fprintf(stderr, "\twritten in %s corner\n", (timelabel_bottom ? "bottom" : "top")); if (timelabel_rotate) fputs("\trotated if the terminal allows it\n\t", stderr); else fputs("\tnot rotated\n\t", stderr); c_token++; } else if (almost_equals(c_token, "su$rface")) { (void) putc('\n', stderr); show_surface(); c_token++; } else if (almost_equals(c_token, "hi$dden3d")) { (void) putc('\n', stderr); show_hidden3d(); c_token++; } else if (almost_equals(c_token, "cla$bel")) { (void) putc('\n', stderr); show_label_contours(); c_token++; } else if (almost_equals(c_token, "xti$cs")) { show_tics(TRUE, FALSE, FALSE, TRUE, FALSE); c_token++; } else if (almost_equals(c_token, "yti$cs")) { show_tics(FALSE, TRUE, FALSE, FALSE, TRUE); c_token++; } else if (almost_equals(c_token, "zti$cs")) { show_tics(FALSE, FALSE, TRUE, FALSE, FALSE); c_token++; } else if (almost_equals(c_token, "x2ti$cs")) { show_tics(FALSE, FALSE, FALSE, TRUE, FALSE); c_token++; } else if (almost_equals(c_token, "y2ti$cs")) { show_tics(FALSE, FALSE, FALSE, FALSE, TRUE); c_token++; } else if (almost_equals(c_token, "xdti$cs")) { show_tics(TRUE, FALSE, FALSE, TRUE, FALSE); c_token++; } else if (almost_equals(c_token, "ydti$cs")) { show_tics(FALSE, TRUE, FALSE, FALSE, TRUE); c_token++; } else if (almost_equals(c_token, "zdti$cs")) { show_tics(FALSE, FALSE, TRUE, FALSE, FALSE); c_token++; } else if (almost_equals(c_token, "x2dti$cs")) { show_tics(FALSE, FALSE, FALSE, TRUE, FALSE); c_token++; } else if (almost_equals(c_token, "y2dti$cs")) { show_tics(FALSE, FALSE, FALSE, FALSE, TRUE); c_token++; } else if (almost_equals(c_token, "xmti$cs")) { show_tics(TRUE, FALSE, FALSE, TRUE, FALSE); c_token++; } else if (almost_equals(c_token, "ymti$cs")) { show_tics(FALSE, TRUE, FALSE, FALSE, TRUE); c_token++; } else if (almost_equals(c_token, "zmti$cs")) { show_tics(FALSE, FALSE, TRUE, FALSE, FALSE); c_token++; } else if (almost_equals(c_token, "x2mti$cs")) { show_tics(FALSE, FALSE, FALSE, TRUE, FALSE); c_token++; } else if (almost_equals(c_token, "y2mti$cs")) { show_tics(FALSE, FALSE, FALSE, FALSE, TRUE); c_token++; } else if (almost_equals(c_token, "sa$mples")) { (void) putc('\n', stderr); show_samples(); c_token++; } else if (almost_equals(c_token, "isosa$mples")) { (void) putc('\n', stderr); show_isosamples(); c_token++; } else if (almost_equals(c_token, "si$ze")) { (void) putc('\n', stderr); show_size(); c_token++; } else if (almost_equals(c_token, "orig$in")) { (void) putc('\n', stderr); show_origin(); c_token++; } else if (almost_equals(c_token, "t$erminal")) { (void) putc('\n', stderr); show_term(); c_token++; } else if (almost_equals(c_token, "rr$ange")) { (void) putc('\n', stderr); show_range(R_AXIS, rmin, rmax, autoscale_r, "r"); c_token++; } else if (almost_equals(c_token, "tr$ange")) { (void) putc('\n', stderr); show_range(T_AXIS, tmin, tmax, autoscale_t, "t"); c_token++; } else if (almost_equals(c_token, "ur$ange")) { (void) putc('\n', stderr); show_range(U_AXIS, umin, umax, autoscale_u, "u"); c_token++; } else if (almost_equals(c_token, "vi$ew")) { (void) putc('\n', stderr); show_view(); c_token++; } else if (almost_equals(c_token, "vr$ange")) { (void) putc('\n', stderr); show_range(V_AXIS, vmin, vmax, autoscale_v, "v"); c_token++; } else if (almost_equals(c_token, "v$ariables")) { show_variables(); c_token++; } else if (almost_equals(c_token, "ve$rsion")) { show_version(stderr); } else if (almost_equals(c_token, "xr$ange")) { (void) putc('\n', stderr); show_range(FIRST_X_AXIS, xmin, xmax, autoscale_x, "x"); c_token++; } else if (almost_equals(c_token, "yr$ange")) { (void) putc('\n', stderr); show_range(FIRST_Y_AXIS, ymin, ymax, autoscale_y, "y"); c_token++; } else if (almost_equals(c_token, "x2r$ange")) { (void) putc('\n', stderr); show_range(SECOND_X_AXIS, x2min, x2max, autoscale_x2, "x2"); c_token++; } else if (almost_equals(c_token, "y2r$ange")) { (void) putc('\n', stderr); show_range(SECOND_Y_AXIS, y2min, y2max, autoscale_y2, "y2"); c_token++; } else if (almost_equals(c_token, "zr$ange")) { (void) putc('\n', stderr); show_range(FIRST_Z_AXIS, zmin, zmax, autoscale_z, "z"); c_token++; } else if (almost_equals(c_token, "z$ero")) { (void) putc('\n', stderr); show_zero(); c_token++; } else if (almost_equals(c_token, "a$ll")) { c_token++; show_version(stderr); show_autoscale(); show_bars(); show_border(); show_boxwidth(); show_clip(); show_contour(); show_dgrid3d(); show_mapping(); (void) fprintf(stderr, "\tdummy variables are \"%s\" and \"%s\"\n", dummy_var[0], dummy_var[1]); show_format(); show_style("data", data_style); show_style("functions", func_style); show_grid(); show_xzeroaxis(); show_yzeroaxis(); show_label(0); show_arrow(0); show_linestyle(0); show_keytitle(); show_key(); show_logscale(); show_offsets(); show_margin(); show_output(); show_parametric(); show_pointsize(); show_encoding(); show_polar(); show_angles(); show_samples(); show_isosamples(); show_view(); show_surface(); #ifndef LITE show_hidden3d(); #endif show_size(); show_origin(); show_term(); show_tics(TRUE, TRUE, TRUE, TRUE, TRUE); show_mtics(mxtics, mxtfreq, "x"); show_mtics(mytics, mytfreq, "y"); show_mtics(mztics, mztfreq, "z"); show_mtics(mx2tics, mx2tfreq, "x2"); show_mtics(my2tics, my2tfreq, "y2"); show_xyzlabel("time", &timelabel); if (parametric || polar) { if (!is_3d_plot) show_range(T_AXIS, tmin, tmax, autoscale_t, "t"); else { show_range(U_AXIS, umin, umax, autoscale_u, "u"); show_range(V_AXIS, vmin, vmax, autoscale_v, "v"); } } show_range(FIRST_X_AXIS, xmin, xmax, autoscale_x, "x"); show_range(FIRST_Y_AXIS, ymin, ymax, autoscale_y, "y"); show_range(SECOND_X_AXIS, x2min, x2max, autoscale_x2, "x2"); show_range(SECOND_Y_AXIS, y2min, y2max, autoscale_y2, "y2"); show_range(FIRST_Z_AXIS, zmin, zmax, autoscale_z, "z"); show_xyzlabel("title", &title); show_xyzlabel("xlabel", &xlabel); show_xyzlabel("ylabel", &ylabel); show_xyzlabel("zlabel", &zlabel); show_xyzlabel("x2label", &x2label); show_xyzlabel("y2label", &y2label); show_datatype("xdata", FIRST_X_AXIS); show_datatype("ydata", FIRST_Y_AXIS); show_datatype("x2data", SECOND_X_AXIS); show_datatype("y2data", SECOND_Y_AXIS); show_datatype("zdata", FIRST_Z_AXIS); show_timefmt(); show_locale(); show_zero(); show_missing(); show_plot(); show_variables(); show_functions(); c_token++; } else return (FALSE); return (TRUE); }
/* return TRUE if a command match, FALSE if not */ static TBOOLEAN show_one() { if (almost_equals(c_token, "ac$tion_table") || equals(c_token, "at")) { c_token++; show_at(); c_token++; } else if (almost_equals(c_token, "ar$row")) { struct value a; int tag = 0; c_token++; if (!END_OF_COMMAND) { tag = (int) real(const_express(&a)); if (tag <= 0) int_error("tag must be > zero", c_token); } (void) putc('\n', stderr); show_arrow(tag); } else if (almost_equals(c_token, "au$toscale")) { (void) putc('\n', stderr); show_autoscale(); c_token++; } else if (almost_equals(c_token, "b$ars")) { (void) putc('\n', stderr); show_bars(); c_token++; } else if (almost_equals(c_token, "bor$der")) { (void) putc('\n', stderr); show_border(); c_token++; } else if (almost_equals(c_token, "box$width")) { (void) putc('\n', stderr); show_boxwidth(); c_token++; } else if (almost_equals(c_token, "c$lip")) { (void) putc('\n', stderr); show_clip(); c_token++; } else if (almost_equals(c_token, "ma$pping")) { (void) putc('\n', stderr); show_mapping(); c_token++; } else if (almost_equals(c_token, "co$ntour") || almost_equals(c_token, "cn$trparam")) { (void) putc('\n', stderr); show_contour(); c_token++; } else if (almost_equals(c_token, "da$ta")) { c_token++; if (!almost_equals(c_token, "s$tyle")) int_error("expecting keyword 'style'", c_token); (void) putc('\n', stderr); show_style("data", data_style); c_token++; } else if (almost_equals(c_token, "dg$rid3d")) { (void) putc('\n', stderr); show_dgrid3d(); c_token++; } else if (almost_equals(c_token, "du$mmy")) { (void) fprintf(stderr, "\n\tdummy variables are \"%s\" and \"%s\"\n", dummy_var[0], dummy_var[1]); c_token++; } else if (almost_equals(c_token, "fo$rmat")) { show_format(); c_token++; } else if (almost_equals(c_token, "fu$nctions")) { c_token++; if (almost_equals(c_token, "s$tyle")) { (void) putc('\n', stderr); show_style("functions", func_style); c_token++; } else show_functions(); } else if (almost_equals(c_token, "lo$gscale")) { (void) putc('\n', stderr); show_logscale(); c_token++; } else if (almost_equals(c_token, "of$fsets")) { (void) putc('\n', stderr); show_offsets(); c_token++; } else if (almost_equals(c_token, "ma$rgin")) { (void) putc('\n', stderr); show_margin(); c_token++; } else if (almost_equals(c_token, "o$utput")) { (void) putc('\n', stderr); show_output(); c_token++; } else if (almost_equals(c_token, "tit$le")) { (void) putc('\n', stderr); show_xyzlabel("title", &title); c_token++; } else if (almost_equals(c_token, "mis$sing")) { (void) putc('\n', stderr); show_missing(); c_token++; } else if (almost_equals(c_token, "xl$abel")) { (void) putc('\n', stderr); show_xyzlabel("xlabel", &xlabel); c_token++; } else if (almost_equals(c_token, "x2l$abel")) { (void) putc('\n', stderr); show_xyzlabel("x2label", &x2label); c_token++; } else if (almost_equals(c_token, "yl$abel")) { (void) putc('\n', stderr); show_xyzlabel("ylabel", &ylabel); c_token++; } else if (almost_equals(c_token, "y2l$abel")) { (void) putc('\n', stderr); show_xyzlabel("y2label", &y2label); c_token++; } else if (almost_equals(c_token, "zl$abel")) { (void) putc('\n', stderr); show_xyzlabel("zlabel", &zlabel); c_token++; } else if (almost_equals(c_token, "keyt$itle")) { (void) putc('\n', stderr); show_keytitle(); c_token++; } else if (almost_equals(c_token, "xda$ta")) { (void) putc('\n', stderr); show_datatype("xdata", FIRST_X_AXIS); c_token++; } else if (almost_equals(c_token, "yda$ta")) { (void) putc('\n', stderr); show_datatype("ydata", FIRST_Y_AXIS); c_token++; } else if (almost_equals(c_token, "x2da$ta")) { (void) putc('\n', stderr); show_datatype("x2data", SECOND_X_AXIS); c_token++; } else if (almost_equals(c_token, "y2da$ta")) { (void) putc('\n', stderr); show_datatype("y2data", SECOND_Y_AXIS); c_token++; } else if (almost_equals(c_token, "zda$ta")) { (void) putc('\n', stderr); show_datatype("zdata", FIRST_Z_AXIS); c_token++; } else if (almost_equals(c_token, "timef$mt")) { (void) putc('\n', stderr); show_timefmt(); c_token++; } else if (almost_equals(c_token, "loca$le")) { (void) putc('\n', stderr); show_locale(); c_token++; } else if (almost_equals(c_token, "xzero$axis")) { (void) putc('\n', stderr); show_xzeroaxis(); c_token++; } else if (almost_equals(c_token, "yzero$axis")) { (void) putc('\n', stderr); show_yzeroaxis(); c_token++; } else if (almost_equals(c_token, "zeroa$xis")) { (void) putc('\n', stderr); show_xzeroaxis(); show_yzeroaxis(); c_token++; } else if (almost_equals(c_token, "la$bel")) { struct value a; int tag = 0; c_token++; if (!END_OF_COMMAND) { tag = (int) real(const_express(&a)); if (tag <= 0) int_error("tag must be > zero", c_token); } (void) putc('\n', stderr); show_label(tag); } else if (almost_equals(c_token, "li$nestyle") || equals(c_token, "ls")) { struct value a; int tag = 0; c_token++; if (!END_OF_COMMAND) { tag = (int) real(const_express(&a)); if (tag <= 0) int_error("tag must be > zero", c_token); } (void) putc('\n', stderr); show_linestyle(tag); } else if (almost_equals(c_token, "g$rid")) { (void) putc('\n', stderr); show_grid(); c_token++; } else if (almost_equals(c_token, "mxt$ics")) { (void) putc('\n', stderr); show_mtics(mxtics, mxtfreq, "x"); c_token++; } else if (almost_equals(c_token, "myt$ics")) { (void) putc('\n', stderr); show_mtics(mytics, mytfreq, "y"); c_token++; } else if (almost_equals(c_token, "mzt$ics")) { (void) putc('\n', stderr); show_mtics(mztics, mztfreq, "z"); c_token++; } else if (almost_equals(c_token, "mx2t$ics")) { (void) putc('\n', stderr); show_mtics(mx2tics, mx2tfreq, "x2"); c_token++; } else if (almost_equals(c_token, "my2t$ics")) { (void) putc('\n', stderr); show_mtics(my2tics, my2tfreq, "y2"); c_token++; } else if (almost_equals(c_token, "k$ey")) { (void) putc('\n', stderr); show_key(); c_token++; } else return (FALSE); return TRUE; }
void benchmark_ffts(int N, int cplx) { int Nfloat = (cplx ? N*2 : N); int Nbytes = Nfloat * sizeof(float); float *X = pffft_aligned_malloc(Nbytes), *Y = pffft_aligned_malloc(Nbytes), *Z = pffft_aligned_malloc(Nbytes); double t0, t1, flops; int k; int max_iter = 5120000/N*4; #ifdef __arm__ max_iter /= 4; #endif int iter; for (k = 0; k < Nfloat; ++k) { X[k] = 0; //sqrtf(k+1); } // FFTPack benchmark { float *wrk = malloc(2*Nbytes + 15*sizeof(float)); int max_iter_ = max_iter/pffft_simd_size(); if (max_iter_ == 0) max_iter_ = 1; if (cplx) cffti(N, wrk); else rffti(N, wrk); t0 = uclock_sec(); for (iter = 0; iter < max_iter_; ++iter) { if (cplx) { cfftf(N, X, wrk); cfftb(N, X, wrk); } else { rfftf(N, X, wrk); rfftb(N, X, wrk); } } t1 = uclock_sec(); free(wrk); flops = (max_iter_*2) * ((cplx ? 5 : 2.5)*N*log((double)N)/M_LN2); // see http://www.fftw.org/speed/method.html show_output("FFTPack", N, cplx, flops, t0, t1, max_iter_); } #ifdef HAVE_VECLIB int log2N = (int)(log(N)/log(2) + 0.5f); if (N == (1<<log2N)) { FFTSetup setup; setup = vDSP_create_fftsetup(log2N, FFT_RADIX2); DSPSplitComplex zsamples; zsamples.realp = &X[0]; zsamples.imagp = &X[Nfloat/2]; t0 = uclock_sec(); for (iter = 0; iter < max_iter; ++iter) { if (cplx) { vDSP_fft_zip(setup, &zsamples, 1, log2N, kFFTDirection_Forward); vDSP_fft_zip(setup, &zsamples, 1, log2N, kFFTDirection_Inverse); } else { vDSP_fft_zrip(setup, &zsamples, 1, log2N, kFFTDirection_Forward); vDSP_fft_zrip(setup, &zsamples, 1, log2N, kFFTDirection_Inverse); } } t1 = uclock_sec(); vDSP_destroy_fftsetup(setup); flops = (max_iter*2) * ((cplx ? 5 : 2.5)*N*log((double)N)/M_LN2); // see http://www.fftw.org/speed/method.html show_output("vDSP", N, cplx, flops, t0, t1, max_iter); } else { show_output("vDSP", N, cplx, -1, -1, -1, -1); } #endif #ifdef HAVE_FFTW { fftwf_plan planf, planb; fftw_complex *in = (fftw_complex*) fftwf_malloc(sizeof(fftw_complex) * N); fftw_complex *out = (fftw_complex*) fftwf_malloc(sizeof(fftw_complex) * N); memset(in, 0, sizeof(fftw_complex) * N); int flags = (N < 40000 ? FFTW_MEASURE : FFTW_ESTIMATE); // measure takes a lot of time on largest ffts //int flags = FFTW_ESTIMATE; if (cplx) { planf = fftwf_plan_dft_1d(N, (fftwf_complex*)in, (fftwf_complex*)out, FFTW_FORWARD, flags); planb = fftwf_plan_dft_1d(N, (fftwf_complex*)in, (fftwf_complex*)out, FFTW_BACKWARD, flags); } else { planf = fftwf_plan_dft_r2c_1d(N, (float*)in, (fftwf_complex*)out, flags); planb = fftwf_plan_dft_c2r_1d(N, (fftwf_complex*)in, (float*)out, flags); } t0 = uclock_sec(); for (iter = 0; iter < max_iter; ++iter) { fftwf_execute(planf); fftwf_execute(planb); } t1 = uclock_sec(); fftwf_destroy_plan(planf); fftwf_destroy_plan(planb); fftwf_free(in); fftwf_free(out); flops = (max_iter*2) * ((cplx ? 5 : 2.5)*N*log((double)N)/M_LN2); // see http://www.fftw.org/speed/method.html show_output((flags == FFTW_MEASURE ? "FFTW (meas.)" : " FFTW (estim)"), N, cplx, flops, t0, t1, max_iter); } #endif // PFFFT benchmark { PFFFT_Setup *s = pffft_new_setup(N, cplx ? PFFFT_COMPLEX : PFFFT_REAL); if (s) { t0 = uclock_sec(); for (iter = 0; iter < max_iter; ++iter) { pffft_transform(s, X, Z, Y, PFFFT_FORWARD); pffft_transform(s, X, Z, Y, PFFFT_BACKWARD); } t1 = uclock_sec(); pffft_destroy_setup(s); flops = (max_iter*2) * ((cplx ? 5 : 2.5)*N*log((double)N)/M_LN2); // see http://www.fftw.org/speed/method.html show_output("PFFFT", N, cplx, flops, t0, t1, max_iter); } } if (!array_output_format) { printf("--\n"); } pffft_aligned_free(X); pffft_aligned_free(Y); pffft_aligned_free(Z); }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////// THE MAIN ////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////// void main() { float *a;//Will contain pointer pointing to the resultant matrix int choice; //////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////START OF MENU/////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////// do { choice=menu();//variable recieves option number selected by the user switch(choice) { case 0:choice=0; printf("\n\n\nTHANK YOU\n\n"); break; case 1:compatibility=1; get_input(compatibility);//will input all data into global struct A and B a=m_sum(X,Y);//ADDITION of struct matrix X,struct matrix Y show_output(a);//will print the result in matrix A[][] break; case 2:compatibility=1; get_input(compatibility);//will input all data into global struct A and B a=m_diff(X,Y);//Subraction of struct matrix X,struct matrix Y show_output(a);//will print the result in matrix A[][] break; case 3:compatibility=2; get_input(compatibility);//will input all data into global struct A and B a=m_prod(X,Y);//Product of struct matrix X,struct matrix Y show_output(a);//will print the result in matrix A[][] break; case 4:/* compatibility=2; get_input(compatibility); a=m_div(X,Y); show_output(a); */ break; case 5:/* compatibility=refer header comments; get_input(compatibility); a=m_funtion(input parameters); show_output(a); */ break; case 6:/* compatibility=refer header comments; get_input(compatibility); a=m_funtion(input parameters); show_output(a); */ break; case 7:/* compatibility=refer header comments; get_input(compatibility); a=m_funtion(input parameters); show_output(a); */ break; case 8:/* compatibility=refer header comments; get_input(compatibility); a=m_funtion(input parameters); show_output(a); */ break; case 9: compatibility=3; get_input(compatibility); a=m_reshape(X,Y); show_output(a); break; case 10: compatibility=0; get_input(compatibility); ans=m_det(X.arr,X.row_size*X.colm_size); printf("The result of the determinant is %f",ans); break; } }while(choice!=0); }