Changeset 923a7a8 for src/fmat.c


Ignore:
Timestamp:
Nov 26, 2013, 4:44:17 AM (6 years ago)
Author:
Paul Brossier <piem@piem.org>
Branches:
feature/autosink, feature/constantq, feature/pitchshift, feature/pydocstrings, feature/timestretch, master, pitchshift, sampler, timestretch, yinfft+
Children:
39a7b26
Parents:
2dbcafa
Message:

src/{fvec,fmat}.c: use memcpy and memset to optimise when possible, add option to disable

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/fmat.c

    r2dbcafa r923a7a8  
    8787
    8888void fmat_zeros(fmat_t *s) {
     89#if HAVE_MEMCPY_HACKS
     90  memset(s->data, 0, s->height * s->length * sizeof(smpl_t));
     91#else
    8992  fmat_set(s, 0.);
     93#endif
    9094}
    9195
     
    114118
    115119void fmat_copy(fmat_t *s, fmat_t *t) {
    116   uint_t i,j;
    117   uint_t height = MIN(s->height, t->height);
    118   uint_t length = MIN(s->length, t->length);
    119120  if (s->height != t->height) {
    120     AUBIO_ERR("warning, trying to copy %d rows to %d rows \n",
     121    AUBIO_ERR("trying to copy %d rows to %d rows \n",
    121122            s->height, t->height);
     123    return;
    122124  }
    123125  if (s->length != t->length) {
    124     AUBIO_ERR("warning, trying to copy %d columns to %d columns\n",
     126    AUBIO_ERR("trying to copy %d columns to %d columns\n",
    125127            s->length, t->length);
     128    return;
    126129  }
    127   for (i=0; i< height; i++) {
    128     for (j=0; j< length; j++) {
     130#if HAVE_MEMCPY_HACKS
     131  memcpy(t->data, s->data, t->height * t->length * sizeof(smpl_t));
     132#else
     133  uint_t i,j;
     134  for (i=0; i< t->height; i++) {
     135    for (j=0; j< t->length; j++) {
    129136      t->data[i][j] = s->data[i][j];
    130137    }
    131138  }
     139#endif
    132140}
    133141
Note: See TracChangeset for help on using the changeset viewer.