Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
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;
}
Ejemplo n.º 4
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;
}
Ejemplo n.º 5
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);
	}
}
Ejemplo n.º 6
0
/* 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);
}
Ejemplo n.º 7
0
/* 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;
}
Ejemplo n.º 8
0
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);
}
Ejemplo n.º 9
0
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////  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);





}