<commit_before>#include "3DSignal.hh"

  namespace spl
  {
    // =======================================================================
    template<typename V>
    Signal3D<V>::Signal3D(unsigned w, unsigned h, unsigned d)
    : parent(traits_domain_type(Signal3D<V>)(w,h,d))
    {
      _data = new V** [d];
      for(unsigned z=0; z < d; ++z)
      {
        _data[z] = new V*[h]; 
        for(unsigned y=0; y < h; ++y)
          _data[z][y] = &parent::data()[y*w + z*w*h];
      }
    }

    // =======================================================================
    template<typename V>
    Signal3D<V>::Signal3D(Domain<3> dom)
    : parent(dom)
    {
      unsigned w = dom[0];
      unsigned h = dom[1];
      unsigned d = dom[2];
      _data = new V** [d];
      for(unsigned z=0; z < d; ++z)
      {
        _data[z] = new V*[h]; 
        for(unsigned y=0; y < h; ++y)
          _data[z][y] = &parent::data()[y*w + z*w*h];
      }
    }

    // =======================================================================
    template<typename V>
    Signal3D<V>::~Signal3D()
    {<commit_msg>Add 3DSignal default ctor from other<commit_after>#include "3DSignal.hh"

  namespace spl
  {
    // =======================================================================
    template<typename V>
    Signal3D<V>::Signal3D(unsigned w, unsigned h, unsigned d)
    : parent(traits_domain_type(Signal3D<V>)(w,h,d))
    {
      _data = new V** [d];
      for(unsigned z=0; z < d; ++z)
      {
        _data[z] = new V*[h]; 
        for(unsigned y=0; y < h; ++y)
          _data[z][y] = &parent::data()[y*w + z*w*h];
      }
    }

    // =======================================================================
    template<typename V>
    Signal3D<V>::Signal3D(Domain<3> dom)
    : parent(dom)
    {
      unsigned w = dom[0];
      unsigned h = dom[1];
      unsigned d = dom[2];
      _data = new V** [d];
      for(unsigned z=0; z < d; ++z)
      {
        _data[z] = new V*[h]; 
        for(unsigned y=0; y < h; ++y)
          _data[z][y] = &parent::data()[y*w + z*w*h];
      }
    }

    // =======================================================================
    template<typename V>
    Signal3D<V>::Signal3D(const Signal3D<V>& s)
    : parent(s)
    {
      unsigned w = s.domain()[0];
      unsigned h = s.domain()[1];
      unsigned d = s.domain()[2];
      _data = new V** [d];
      for(unsigned z=0; z < d; ++z)
      {
        _data[z] = new V*[h]; 
        for(unsigned y=0; y < h; ++y)
          _data[z][y] = &parent::data()[y*w + z*w*h];
      }
    }

    // =======================================================================
    template<typename V>
    Signal3D<V>::~Signal3D()
    {
{'fraction_non_alphanumeric': 0.3407079646017699, 'fraction_numerical': 0.015117994100294985, 'mean_word_length': 2.5886243386243386, 'pattern_counts': {'":': 0, '<': 32, '<?xml version=': 0, '>': 22, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1161714', 'n_tokens_mistral': 959, 'n_tokens_neox': 900, 'n_words': 180}