Esempio n. 1
0
void chapeau_savestate ( chapeau * ch, int timestep, char * filename ) {
  int N=ch->N;
  int m=ch->m;
  FILE *ofs;

  ofs=fopen(filename,"w");

  fwrite(&timestep,sizeof(int),1,ofs);
  fwrite(ch, sizeof(*ch), 1, ofs);
  fwrite(ch->hits,sizeof(*(ch->hits)),m,ofs);
  fwrite(ch->mask,sizeof(*(ch->mask)),N,ofs);
  //fwrite(ch->s,sizeof(***(ch->s)),m*N*3,ofs);

  gsl_matrix_fwrite(ofs,ch->A);
  gsl_vector_fwrite(ofs,ch->b);
  gsl_matrix_fwrite(ofs,ch->Afull);
  gsl_vector_fwrite(ofs,ch->bfull);
  gsl_vector_fwrite(ofs,ch->lam);

  fclose(ofs);
  
}
Esempio n. 2
0
File: io.c Progetto: pa345/lib
int
pca_write_vector(const char *filename, const gsl_vector * v)
{
    int s;
    FILE *fp;

    fp = fopen(filename, "w");
    if (!fp)
    {
        fprintf(stderr, "pca_write_vector: unable to open %s: %s\n",
                filename, strerror(errno));
        return -1;
    }

    fwrite(&(v->size), sizeof(size_t), 1, fp);
    s = gsl_vector_fwrite(fp, v);

    fclose(fp);

    return s;
}
Esempio n. 3
0
File: lls.c Progetto: pa345/lib
int
lls_save(const char *filename, lls_workspace *w)
{
  int s = 0;
  FILE *fp;

  fp = fopen(filename, "w");
  if (!fp)
    {
      fprintf(stderr, "lls_save: unable to open %s: %s\n",
              filename, strerror(errno));
      return GSL_FAILURE;
    }

  fwrite(&(w->bTb), sizeof(double), 1, fp);
  s += gsl_matrix_fwrite(fp, w->ATA);
  s += gsl_vector_fwrite(fp, w->ATb);

  fclose(fp);

  return s;
} /* lls_save() */
Esempio n. 4
0
void crypt_vector(int *a, int n, int factor, int seed) {

	/*
	Opening the coresponding files as streams
	*/

	int i = 0;
	FILE *fp_s;
	FILE *fp_m1;
	FILE *fp_m2;
	if(factor == 0) {
		fp_s = fopen("s.key", "r");
		fp_m1 = fopen("m1_t.key", "r");
		fp_m2 = fopen("m2_t.key", "r");
	}
	else {
		fp_s = fopen("s_i.key", "r");
		fp_m1 = fopen("m1_i.key", "r");
		fp_m2 = fopen("m2_i.key", "r");
	}
	/*
	Allocating memories for the datastructures
	*/
	gsl_vector *org_vector = gsl_vector_alloc(n);
	gsl_vector *s = gsl_vector_alloc(n);
	gsl_matrix *m1 = gsl_matrix_alloc(n,n);
	gsl_matrix *m2 = gsl_matrix_alloc(n,n);


	/* 
	Getting them into memory
	*/
	gsl_vector_fread(fp_s, s);
	gsl_matrix_fread(fp_m1, m1);
	gsl_matrix_fread(fp_m2, m2);



	for(i = 0; i<n; i++)
		gsl_vector_set(org_vector, i, a[i]);

	init_rng(seed);
	
	if(factor == 1) {
		int scale = gsl_rng_uniform_int(r, 100);
		gsl_vector_scale(org_vector, scale);
	}
	
	gsl_vector *splt_vec_1 = gsl_vector_alloc(n);
	gsl_vector *splt_vec_2 = gsl_vector_alloc(n);
    
	split(org_vector, splt_vec_1, splt_vec_2, s, n);
	
	
	/*{
        int j = 0;
        for(j = 0; j<n; j++)
            printf("%d",  (int) gsl_vector_get(org_vector, j));
	    
	    printf("\n\n\n");
        //int i = 0, j = 0;
        for(j = 0; j<n; j++)
            printf("%d",  (int) gsl_vector_get(splt_vec_1, j));
            
        printf("\n\n\n");
        for(j = 0; j<n; j++)
            printf("%d", (int) gsl_vector_get(splt_vec_2, j));
        printf("\n\n");
	}*/
	

	gsl_vector *crp_vector_1 = gsl_vector_alloc(n);
	gsl_vector *crp_vector_2 = gsl_vector_alloc(n);

	compute_crp_vector(splt_vec_1, m1, crp_vector_1, n);
	compute_crp_vector(splt_vec_2, m2, crp_vector_2, n);
	FILE *f_crpt_1 = fopen("crypt_1.key", "w");
	FILE *f_crpt_2 = fopen("crypt_2.key", "w");

	gsl_vector_fwrite(f_crpt_1, crp_vector_1);
	gsl_vector_fwrite(f_crpt_2, crp_vector_2);

	gsl_vector_free(org_vector);
	gsl_vector_free(s);
	gsl_vector_free(splt_vec_1);
	gsl_vector_free(splt_vec_2);
	gsl_vector_free(crp_vector_1);
	gsl_vector_free(crp_vector_2);
	gsl_matrix_free(m1);
	gsl_matrix_free(m2);
	gsl_rng_free(r);

	fclose(fp_s);
	fclose(fp_m1);
	fclose(fp_m2);
	fclose(f_crpt_1);
	fclose(f_crpt_2);

}
Esempio n. 5
0
  gsl_matrix * bootstrap_and_calc_adj_matrix(
      gsl_matrix * A,
      size_t num_steps,
      decimal threshold,
      CoexpressionMeasure filter,
      void (* interaction_matrix_generator_fnc)(gsl_matrix *, gsl_matrix *, CoexpressionMeasure),
      bool use_tmp_file = false
      )
  {
    size_t num_elems = A->size1;
           //num_obs = A->size2;

    gsl_matrix * interaction = gsl_matrix_calloc(num_elems, num_elems);
    interaction_matrix_generator_fnc(A, interaction, filter);

    // Bootstrapping
    std::list<gsl_matrix *> boot_matrix;
    {
      detail::write_matrix_3d write_boot_matrix;

      if (use_tmp_file)
        write_boot_matrix.set_filename("tmp_file.out");

      boost::mt19937 rng(time(NULL) - num_steps - int(threshold * 100));

      for (size_t i = 0; i < num_steps; ++i)
      {
        std::cout << "step = " << i << std::endl; // DEBUG
        bootstrap_and_calc_adj_matrix_helper(A, boot_matrix, write_boot_matrix, filter, rng, interaction_matrix_generator_fnc, use_tmp_file);
      }
    }

    // Compute adjacency matrix
    detail::read_matrix_3d read_boot_matrix(num_elems, num_elems, num_steps);

    if (use_tmp_file)
      read_boot_matrix.set_filename("tmp_file.out");

    gsl_matrix * adj_matrix = gsl_matrix_alloc(num_elems, num_elems);

    for (size_t r = 0; r < num_elems; ++r)
    {
      for (size_t c = 0; c < num_elems; ++c)
      {
        double value = gsl_matrix_get(interaction, r, c);

        gsl_vector * boot_z_vec = gsl_vector_calloc(num_steps);

        if (use_tmp_file)
        {
          read_boot_matrix.read(r, c, boot_z_vec);
        }
        else
        {
          size_t i = 0;
          for (std::list<gsl_matrix *>::iterator li = boot_matrix.begin(); li != boot_matrix.end(); ++li, ++i)
            gsl_vector_set(boot_z_vec, i, gsl_matrix_get(*li, r, c));
        }

        double mean = gsl_stats_mean(boot_z_vec->data, boot_z_vec->stride, num_steps),
               sd = gsl_stats_sd(boot_z_vec->data, boot_z_vec->stride, num_steps);

        // DEBUG
        std::string filename = "boot_" + to_string(r) + "_" + to_string(c) + ".out";
        FILE * outfile = fopen(filename.c_str(), "wb");
        gsl_vector_fwrite(outfile, boot_z_vec);
        fclose(outfile);
        // END DEBUG
        
        if (value < (mean - threshold * sd) || value > (mean + threshold * sd))
          gsl_matrix_set(adj_matrix, r, c, value);
        else
          gsl_matrix_set(adj_matrix, r, c, 0.0);

        gsl_vector_free(boot_z_vec);
      }
    }

    // Free interaction matrices
    gsl_matrix_free(interaction);
    if (!use_tmp_file)
      for (std::list<gsl_matrix *>::iterator li = boot_matrix.begin(); li != boot_matrix.end(); ++li)
        gsl_matrix_free(*li);

    return adj_matrix;
  }