From 79a083f28e9df04768151c8a916934716b4a2646 Mon Sep 17 00:00:00 2001 From: Richard Knight Date: Mon, 24 Aug 2020 05:20:46 +0100 Subject: initial --- include/cosine.hpp | 29 +++++++++++++++++++++++++++++ include/haar.hpp | 29 +++++++++++++++++++++++++++++ include/walsh.hpp | 43 +++++++++++++++++++++++++++++++++++++++++++ include/walsh2.hpp | 30 ++++++++++++++++++++++++++++++ 4 files changed, 131 insertions(+) create mode 100644 include/cosine.hpp create mode 100644 include/haar.hpp create mode 100644 include/walsh.hpp create mode 100644 include/walsh2.hpp (limited to 'include') diff --git a/include/cosine.hpp b/include/cosine.hpp new file mode 100644 index 0000000..b9a4804 --- /dev/null +++ b/include/cosine.hpp @@ -0,0 +1,29 @@ +/* + cosine.hpp + Copyright (C) 2019 Richard Knight + + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + */ + +#ifndef COSINE_HPP +#define COSINE_HPP +#include +void cosine_transform_data (csnd::Vector d, csnd::Vector c); +void cosine_transform_inverse (csnd::Vector c, csnd::Vector d); + +#endif /* COSINE_HPP */ + diff --git a/include/haar.hpp b/include/haar.hpp new file mode 100644 index 0000000..c18477d --- /dev/null +++ b/include/haar.hpp @@ -0,0 +1,29 @@ +/* + haar.hpp + Copyright (C) 2019 Richard Knight + + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + */ + +#ifndef HAAR_HPP +#define HAAR_HPP +#include + +void haar_1d (csnd::Csound* csound, csnd::Vector x); +void haar_1d_inverse (csnd::Csound* csound, csnd::Vector x); +#endif /* HAAR_HPP */ + diff --git a/include/walsh.hpp b/include/walsh.hpp new file mode 100644 index 0000000..b3e3d4b --- /dev/null +++ b/include/walsh.hpp @@ -0,0 +1,43 @@ +/* + walsh.hpp + Copyright (C) 2019 Richard Knight + + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + */ + +#ifndef WALSH_HPP +#define WALSH_HPP +#include +void ffwt (csnd::Csound* csound, csnd::Vector x); +void fwt (csnd::Csound* csound, csnd::Vector x); +void haar (csnd::Csound* csound, csnd::Vector x); +void haarin (csnd::Csound* csound, csnd::Vector x); +void hnorm (csnd::Vector x); +int i4_log_2 ( int i ); +int i4_max ( int i1, int i2 ); +int i4_min ( int i1, int i2 ); +int i4_modp ( int i, int j ); +int i4_power ( int i, int j ); +int i4_wrap ( int ival, int ilo, int ihi ); +void r8vec_copy ( int n, double a1[], csnd::Vector a2); +void r8vec_copy ( int n, csnd::Vector a1, double a2[]); +double *r8vec_copy_new (csnd::Csound* csound, int n, double a1[] ); +void walsh (csnd::Csound* csound, csnd::Vector x); + + +#endif /* WALSH_HPP */ + diff --git a/include/walsh2.hpp b/include/walsh2.hpp new file mode 100644 index 0000000..e7066ed --- /dev/null +++ b/include/walsh2.hpp @@ -0,0 +1,30 @@ +/* + walsh2.cpp + Copyright (C) 2019 Richard Knight + + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + */ +#ifndef WALSH2_HPP +#define WALSH2_HPP + +#include + +void fwtanal(csnd::Vector io); +void fwtsynth(csnd::Vector io); + +#endif /* WALSH2_HPP */ + -- cgit v1.2.3