[PD-cvs] SF.net SVN: pure-data:[10549] trunk/externals/iem/iemmatrix

fzotter at users.sourceforge.net fzotter at users.sourceforge.net
Wed Jan 14 11:58:33 CET 2009


Revision: 10549
          http://pure-data.svn.sourceforge.net/pure-data/?rev=10549&view=rev
Author:   fzotter
Date:     2009-01-14 10:58:32 +0000 (Wed, 14 Jan 2009)

Log Message:
-----------
renamed [mtx_sh] to [mtx_spherical_harmonics].

Modified Paths:
--------------
    trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics/chebyshev12.c
    trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics/config.log
    trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics/legendre_a.c
    trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics/sharmonics.c
    trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics/sharmonics_normalization.c

Added Paths:
-----------
    trunk/externals/iem/iemmatrix/doc/mtx_spherical_harmonics-help.pd
    trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics/
    trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics.c

Removed Paths:
-------------
    trunk/externals/iem/iemmatrix/doc/mtx_sh-help.pd
    trunk/externals/iem/iemmatrix/src/mtx_sh/
    trunk/externals/iem/iemmatrix/src/mtx_sh.c

Deleted: trunk/externals/iem/iemmatrix/doc/mtx_sh-help.pd
===================================================================
--- trunk/externals/iem/iemmatrix/doc/mtx_sh-help.pd	2009-01-14 02:46:47 UTC (rev 10548)
+++ trunk/externals/iem/iemmatrix/doc/mtx_sh-help.pd	2009-01-14 10:58:32 UTC (rev 10549)
@@ -1,27 +0,0 @@
-#N canvas 61 39 921 503 10;
-#X msg 96 97 matrix 2 1 0 0;
-#X obj 184 163 mtx_rand;
-#X msg 187 141 2 10;
-#X obj 96 197 mtx_print;
-#X obj 96 157 mtx_sh 1;
-#X text 95 54 [mtx_sh] spherical harmonics evaluated at a set of points
-given in phi and theta coordinates.;
-#X text 306 117 [mtx_sh] requires a numerical creation argument nmax
-specifyiing the maximum order 0<=n<=nmax.;
-#X text 305 160 for an L points 2xL input matrix \, [mtx_sh] evaluates
-the (nmax+2)^2 spherical harmonics at L points and delivers an Lx(nmax+2)^2
-output matrix.;
-#X text 527 347 Franz Zotter \, 2009;
-#X text 150 226 for -n<=m<=n:;
-#X text 188 258 Y_n^m(phi \, theta) = N_n^m * sin(m*phi) * P_n^m(cos(theta))
-;
-#X text 188 242 Y_n^m(phi \, theta) = N_n^m * cos(m*phi) * P_n^m(cos(theta))
-;
-#X text 641 241 for m>=0;
-#X text 640 257 for m< 0;
-#X text 147 291 The order of the harmonics in the output columns is
-specified by the linear index k=n^2+n+m+1.;
-#X connect 0 0 4 0;
-#X connect 1 0 4 0;
-#X connect 2 0 1 0;
-#X connect 4 0 3 0;

Copied: trunk/externals/iem/iemmatrix/doc/mtx_spherical_harmonics-help.pd (from rev 10548, trunk/externals/iem/iemmatrix/doc/mtx_sh-help.pd)
===================================================================
--- trunk/externals/iem/iemmatrix/doc/mtx_spherical_harmonics-help.pd	                        (rev 0)
+++ trunk/externals/iem/iemmatrix/doc/mtx_spherical_harmonics-help.pd	2009-01-14 10:58:32 UTC (rev 10549)
@@ -0,0 +1,29 @@
+#N canvas 61 39 921 503 10;
+#X msg 96 97 matrix 2 1 0 0;
+#X obj 206 132 mtx_rand;
+#X msg 209 110 2 10;
+#X obj 96 197 mtx_print;
+#X text 537 377 Franz Zotter \, 2009;
+#X text 150 226 for -n<=m<=n:;
+#X text 188 258 Y_n^m(phi \, theta) = N_n^m * sin(m*phi) * P_n^m(cos(theta))
+;
+#X text 188 242 Y_n^m(phi \, theta) = N_n^m * cos(m*phi) * P_n^m(cos(theta))
+;
+#X text 641 241 for m>=0;
+#X text 640 257 for m< 0;
+#X text 147 291 The order of the harmonics in the output columns is
+specified by the linear index k=n^2+n+m+1.;
+#X text 95 54 [mtx_spherical_harmonics] spherical harmonics evaluated
+at a set of points given in phi and theta coordinates.;
+#X text 146 328 [mtx_spherical_harmonics] uses fully normalized Y_n^m
+with Condon-Shortley phase;
+#X text 305 160 for an L points 2xL input matrix \, [mtx_spherical_harmonics]
+evaluates the (nmax+2)^2 spherical harmonics at L points and delivers
+an Lx(nmax+2)^2 output matrix.;
+#X text 309 118 [mtx_spherical_harmonics] requires a numerical creation
+argument <nmax> specifyiing the maximum order 0<=n<=nmax.;
+#X obj 96 157 mtx_spherical_harmonics 2;
+#X connect 0 0 15 0;
+#X connect 1 0 15 0;
+#X connect 2 0 1 0;
+#X connect 15 0 3 0;


Property changes on: trunk/externals/iem/iemmatrix/doc/mtx_spherical_harmonics-help.pd
___________________________________________________________________
Added: svn:mergeinfo
   + 

Deleted: trunk/externals/iem/iemmatrix/src/mtx_sh.c
===================================================================
--- trunk/externals/iem/iemmatrix/src/mtx_sh.c	2009-01-14 02:46:47 UTC (rev 10548)
+++ trunk/externals/iem/iemmatrix/src/mtx_sh.c	2009-01-14 10:58:32 UTC (rev 10549)
@@ -1,146 +0,0 @@
-/*
- *  iemmatrix
- *
- *  objects for manipulating simple matrices
- *  mostly refering to matlab/octave matrix functions
- *  this functions depends on the GNU scientific library
- *
- * Copyright (c) 2009, Franz Zotter
- * IEM, Graz, Austria
- *
- * For information on usage and redistribution, and for a DISCLAIMER OF ALL
- * WARRANTIES, see the file, "LICENSE.txt," in this distribution.
- *
- */
-
-#include "iemmatrix.h"
-#include <stdlib.h>
-#include "mtx_sh/sharmonics.c"
-#include "mtx_sh/legendre_a.c"
-#include "mtx_sh/chebyshev12.c"
-#include "mtx_sh/sharmonics_normalization.c"
-
-static t_class *mtx_sh_class;
-
-typedef struct _MTXSh_ MTXSh;
-struct _MTXSh_
-{
-  t_object x_obj;
-  t_outlet *list_sh_out;
-  t_atom *list_sh;
-  double *phi;
-  double *theta;
-  SHWorkSpace *ws;
-  size_t nmax;
-  size_t l;
-};
-
-static void allocMTXdata (MTXSh *x) 
-{
-   x->phi=(double*)calloc(x->l,sizeof(double));
-   x->theta=(double*)calloc(x->l,sizeof(double));
-   x->ws=sharmonics_alloc(x->nmax,x->l);
-   x->list_sh=(t_atom*)calloc(x->l*(x->nmax+1)*(x->nmax+1)+2,sizeof(t_atom));
-}
-
-static void deleteMTXShdata (MTXSh *x) 
-{
-   if (x->phi!=0)
-      free(x->phi);
-   if (x->theta!=0)
-      free(x->theta);
-   if (x->list_sh!=0)
-      free(x->list_sh);
-   sharmonics_free(x->ws);
-   x->ws=0;
-   x->list_sh=0;
-   x->theta=0;
-   x->phi=0;
-}
-
-static void *newMTXSh (t_symbol *s, int argc, t_atom *argv)
-{
-  int nmax;
-  MTXSh *x = (MTXSh *) pd_new (mtx_sh_class);
-  x->list_sh_out = outlet_new (&x->x_obj, gensym("matrix"));
-  x->list_sh = 0; 
-  x->phi = 0; 
-  x->theta = 0; 
-  x->ws = 0; 
-  x->l=0;
-  nmax=(int) atom_getfloat(argv);
-  post("mtx_sh order %d",nmax);
-  if (nmax<0)
-     nmax=0;
-  x->nmax=nmax;
-  
-  return ((void *) x);
-} 
-
-static void mTXShBang (MTXSh *x)
-{
-  if (x->list_sh!=0) {
-    outlet_anything(x->list_sh_out, gensym("matrix"), x->l*(x->nmax+1)*(x->nmax+1)+2, x->list_sh);
-  }
-}
-
-static void mTXShMatrix (MTXSh *x, t_symbol *s, 
-			      int argc, t_atom *argv)
-{
-  int rows = atom_getint (argv++);
-  int columns = atom_getint (argv++);
-  int size = rows * columns;
-  int in_size = argc-2;
-  int n;
-
-
-  /* size check */
-  if (!size) 
-    post("mtx_sh: invalid dimensions");
-  else if (in_size<size) 
-    post("mtx_sh: sparse matrix not yet supported: use \"mtx_check\"");
-  else if ((rows!=2)||(columns<1))
-     post("mtx_sh: 2 X L matrix expected with phi and theta vector, but got more rows/no entries");
-  else {
-     if (x->l!=columns) {
-        deleteMTXShdata(x);
-        x->l=columns;
-        allocMTXdata(x);
-     }
-     
-     for (n=0;n<x->l;n++) {
-        x->phi[n]=(double) atom_getfloat(argv+n);
-        x->theta[n]=(double) atom_getfloat(argv+columns);
-     }
-  
-     if (x->ws!=0) {
-        sharmonics(x->phi, x->theta, x->ws);
-        in_size=x->l*(x->nmax+1)*(x->nmax+1);
-        SETFLOAT(x->list_sh,(float)x->l);
-        SETFLOAT(x->list_sh+1,(float)(x->nmax+1)*(x->nmax+1));
-        for (n=0;n<in_size; n++) 
-           SETFLOAT(x->list_sh+n+2,(float)x->ws->y[n]);
-        mTXShBang(x);
-     }
-     else 
-        post("mtx_sh: memory error, no operation");
-  }
-
-
-}
-
-void mtx_sh_setup (void)
-{
-  mtx_sh_class = class_new 
-    (gensym("mtx_sh"),
-     (t_newmethod) newMTXSh,
-     (t_method) deleteMTXShdata,
-     sizeof (MTXSh),
-     CLASS_DEFAULT, A_GIMME, 0);
-  class_addbang (mtx_sh_class, (t_method) mTXShBang);
-  class_addmethod (mtx_sh_class, (t_method) mTXShMatrix, gensym("matrix"), A_GIMME,0);
-}
-
-void iemtx_sh_setup(void){
-  mtx_sh_setup();
-}


Property changes on: trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics
___________________________________________________________________
Added: svn:mergeinfo
   + 

Modified: trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics/chebyshev12.c
===================================================================
--- trunk/externals/iem/iemmatrix/src/mtx_sh/chebyshev12.c	2009-01-14 02:46:47 UTC (rev 10548)
+++ trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics/chebyshev12.c	2009-01-14 10:58:32 UTC (rev 10549)
@@ -13,7 +13,7 @@
  "LICENSE.txt"
 */
 
-#include "mtx_sh/chebyshev12.h"
+#include "mtx_spherical_harmonics/chebyshev12.h"
 
 Cheby12WorkSpace *chebyshev12_alloc(const size_t nmax, const size_t l) {
    Cheby12WorkSpace *wc;

Modified: trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics/config.log
===================================================================
--- trunk/externals/iem/iemmatrix/src/mtx_sh/config.log	2009-01-14 02:46:47 UTC (rev 10548)
+++ trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics/config.log	2009-01-14 10:58:32 UTC (rev 10549)
@@ -231,8 +231,7 @@
 on gamelan
 
 config.status:620: creating Makefile
-config.status:620: creating test/Makefile
-config.status:811: executing depfiles commands
+config.status:606: error: cannot find input file: test/Makefile.in
 
 ## ---------------- ##
 ## Cache variables. ##
@@ -397,130 +396,4 @@
 #define HAVE_MALLOC 1
 #define HAVE_POW 1
 
-configure: exit 0
-
-## ---------------------- ##
-## Running config.status. ##
-## ---------------------- ##
-
-This file was extended by sh config.status 0.1, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
-
-  CONFIG_FILES    = 
-  CONFIG_HEADERS  = 
-  CONFIG_LINKS    = 
-  CONFIG_COMMANDS = 
-  $ ./config.status Makefile depfiles
-
-on gamelan
-
-config.status:620: creating Makefile
-config.status:811: executing depfiles commands
-
-## ---------------------- ##
-## Running config.status. ##
-## ---------------------- ##
-
-This file was extended by sh config.status 0.1, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
-
-  CONFIG_FILES    = 
-  CONFIG_HEADERS  = 
-  CONFIG_LINKS    = 
-  CONFIG_COMMANDS = 
-  $ ./config.status Makefile depfiles
-
-on gamelan
-
-config.status:620: creating Makefile
-config.status:811: executing depfiles commands
-
-## ---------------------- ##
-## Running config.status. ##
-## ---------------------- ##
-
-This file was extended by sh config.status 0.1, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
-
-  CONFIG_FILES    = 
-  CONFIG_HEADERS  = 
-  CONFIG_LINKS    = 
-  CONFIG_COMMANDS = 
-  $ ./config.status test/Makefile depfiles
-
-on gamelan
-
-config.status:620: creating test/Makefile
-config.status:811: executing depfiles commands
-
-## ---------------------- ##
-## Running config.status. ##
-## ---------------------- ##
-
-This file was extended by sh config.status 0.1, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
-
-  CONFIG_FILES    = 
-  CONFIG_HEADERS  = 
-  CONFIG_LINKS    = 
-  CONFIG_COMMANDS = 
-  $ ./config.status test/Makefile depfiles
-
-on gamelan
-
-config.status:620: creating test/Makefile
-config.status:811: executing depfiles commands
-
-## ---------------------- ##
-## Running config.status. ##
-## ---------------------- ##
-
-This file was extended by sh config.status 0.1, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
-
-  CONFIG_FILES    = 
-  CONFIG_HEADERS  = 
-  CONFIG_LINKS    = 
-  CONFIG_COMMANDS = 
-  $ ./config.status test/Makefile depfiles
-
-on gamelan
-
-config.status:620: creating test/Makefile
-config.status:811: executing depfiles commands
-
-## ---------------------- ##
-## Running config.status. ##
-## ---------------------- ##
-
-This file was extended by sh config.status 0.1, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
-
-  CONFIG_FILES    = 
-  CONFIG_HEADERS  = 
-  CONFIG_LINKS    = 
-  CONFIG_COMMANDS = 
-  $ ./config.status Makefile depfiles
-
-on gamelan
-
-config.status:620: creating Makefile
-config.status:811: executing depfiles commands
-
-## ---------------------- ##
-## Running config.status. ##
-## ---------------------- ##
-
-This file was extended by sh config.status 0.1, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
-
-  CONFIG_FILES    = 
-  CONFIG_HEADERS  = 
-  CONFIG_LINKS    = 
-  CONFIG_COMMANDS = 
-  $ ./config.status test/Makefile depfiles
-
-on gamelan
-
-config.status:620: creating test/Makefile
-config.status:811: executing depfiles commands
+configure: exit 1

Modified: trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics/legendre_a.c
===================================================================
--- trunk/externals/iem/iemmatrix/src/mtx_sh/legendre_a.c	2009-01-14 02:46:47 UTC (rev 10548)
+++ trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics/legendre_a.c	2009-01-14 10:58:32 UTC (rev 10549)
@@ -14,7 +14,7 @@
 
 */
 
-#include "mtx_sh/legendre_a.h"
+#include "mtx_spherical_harmonics/legendre_a.h"
 
 static void legendre_first_recurrence (double *sintheta, LegendreWorkSpace *wl) {
    int n,l,l0;

Modified: trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics/sharmonics.c
===================================================================
--- trunk/externals/iem/iemmatrix/src/mtx_sh/sharmonics.c	2009-01-14 02:46:47 UTC (rev 10548)
+++ trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics/sharmonics.c	2009-01-14 10:58:32 UTC (rev 10549)
@@ -12,7 +12,7 @@
  * "LICENSE.txt"
  */
 
-#include "mtx_sh/sharmonics.h"
+#include "mtx_spherical_harmonics/sharmonics.h"
 
 // HELPER ROUTINES
 

Modified: trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics/sharmonics_normalization.c
===================================================================
--- trunk/externals/iem/iemmatrix/src/mtx_sh/sharmonics_normalization.c	2009-01-14 02:46:47 UTC (rev 10548)
+++ trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics/sharmonics_normalization.c	2009-01-14 10:58:32 UTC (rev 10549)
@@ -12,7 +12,7 @@
  * "LICENSE.txt"
  */
 
-#include "mtx_sh/sharmonics_normalization.h"
+#include "mtx_spherical_harmonics/sharmonics_normalization.h"
 
 SHNorml *sharmonics_normalization_new (const size_t nmax) {
    SHNorml *wn;

Copied: trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics.c (from rev 10548, trunk/externals/iem/iemmatrix/src/mtx_sh.c)
===================================================================
--- trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics.c	                        (rev 0)
+++ trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics.c	2009-01-14 10:58:32 UTC (rev 10549)
@@ -0,0 +1,146 @@
+/*
+ *  iemmatrix
+ *
+ *  objects for manipulating simple matrices
+ *  mostly refering to matlab/octave matrix functions
+ *  this functions depends on the GNU scientific library
+ *
+ * Copyright (c) 2009, Franz Zotter
+ * IEM, Graz, Austria
+ *
+ * For information on usage and redistribution, and for a DISCLAIMER OF ALL
+ * WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+ *
+ */
+
+#include "iemmatrix.h"
+#include <stdlib.h>
+#include "mtx_spherical_harmonics/sharmonics.c"
+#include "mtx_spherical_harmonics/legendre_a.c"
+#include "mtx_spherical_harmonics/chebyshev12.c"
+#include "mtx_spherical_harmonics/sharmonics_normalization.c"
+
+static t_class *mtx_spherical_harmonics_class;
+
+typedef struct _MTXSh_ MTXSh;
+struct _MTXSh_
+{
+  t_object x_obj;
+  t_outlet *list_sh_out;
+  t_atom *list_sh;
+  double *phi;
+  double *theta;
+  SHWorkSpace *ws;
+  size_t nmax;
+  size_t l;
+};
+
+static void allocMTXdata (MTXSh *x) 
+{
+   x->phi=(double*)calloc(x->l,sizeof(double));
+   x->theta=(double*)calloc(x->l,sizeof(double));
+   x->ws=sharmonics_alloc(x->nmax,x->l);
+   x->list_sh=(t_atom*)calloc(x->l*(x->nmax+1)*(x->nmax+1)+2,sizeof(t_atom));
+}
+
+static void deleteMTXShdata (MTXSh *x) 
+{
+   if (x->phi!=0)
+      free(x->phi);
+   if (x->theta!=0)
+      free(x->theta);
+   if (x->list_sh!=0)
+      free(x->list_sh);
+   sharmonics_free(x->ws);
+   x->ws=0;
+   x->list_sh=0;
+   x->theta=0;
+   x->phi=0;
+}
+
+static void *newMTXSh (t_symbol *s, int argc, t_atom *argv)
+{
+  int nmax;
+  MTXSh *x = (MTXSh *) pd_new (mtx_spherical_harmonics_class);
+  x->list_sh_out = outlet_new (&x->x_obj, gensym("matrix"));
+  x->list_sh = 0; 
+  x->phi = 0; 
+  x->theta = 0; 
+  x->ws = 0; 
+  x->l=0;
+  nmax=(int) atom_getfloat(argv);
+  post("mtx_spherical_harmonics order %d",nmax);
+  if (nmax<0)
+     nmax=0;
+  x->nmax=nmax;
+  
+  return ((void *) x);
+} 
+
+static void mTXShBang (MTXSh *x)
+{
+  if (x->list_sh!=0) {
+    outlet_anything(x->list_sh_out, gensym("matrix"), x->l*(x->nmax+1)*(x->nmax+1)+2, x->list_sh);
+  }
+}
+
+static void mTXShMatrix (MTXSh *x, t_symbol *s, 
+			      int argc, t_atom *argv)
+{
+  int rows = atom_getint (argv++);
+  int columns = atom_getint (argv++);
+  int size = rows * columns;
+  int in_size = argc-2;
+  int n;
+
+
+  /* size check */
+  if (!size) 
+    post("mtx_spherical_harmonics: invalid dimensions");
+  else if (in_size<size) 
+    post("mtx_spherical_harmonics: sparse matrix not yet supported: use \"mtx_check\"");
+  else if ((rows!=2)||(columns<1))
+     post("mtx_spherical_harmonics: 2 X L matrix expected with phi and theta vector, but got more rows/no entries");
+  else {
+     if (x->l!=columns) {
+        deleteMTXShdata(x);
+        x->l=columns;
+        allocMTXdata(x);
+     }
+     
+     for (n=0;n<x->l;n++) {
+        x->phi[n]=(double) atom_getfloat(argv+n);
+        x->theta[n]=(double) atom_getfloat(argv+columns);
+     }
+  
+     if (x->ws!=0) {
+        sharmonics(x->phi, x->theta, x->ws);
+        in_size=x->l*(x->nmax+1)*(x->nmax+1);
+        SETFLOAT(x->list_sh,(float)x->l);
+        SETFLOAT(x->list_sh+1,(float)(x->nmax+1)*(x->nmax+1));
+        for (n=0;n<in_size; n++) 
+           SETFLOAT(x->list_sh+n+2,(float)x->ws->y[n]);
+        mTXShBang(x);
+     }
+     else 
+        post("mtx_spherical_harmonics: memory error, no operation");
+  }
+
+
+}
+
+void mtx_spherical_harmonics_setup (void)
+{
+  mtx_spherical_harmonics_class = class_new 
+    (gensym("mtx_spherical_harmonics"),
+     (t_newmethod) newMTXSh,
+     (t_method) deleteMTXShdata,
+     sizeof (MTXSh),
+     CLASS_DEFAULT, A_GIMME, 0);
+  class_addbang (mtx_spherical_harmonics_class, (t_method) mTXShBang);
+  class_addmethod (mtx_spherical_harmonics_class, (t_method) mTXShMatrix, gensym("matrix"), A_GIMME,0);
+}
+
+void iemtx_spherical_harmonics_setup(void){
+  mtx_spherical_harmonics_setup();
+}


Property changes on: trunk/externals/iem/iemmatrix/src/mtx_spherical_harmonics.c
___________________________________________________________________
Added: svn:mergeinfo
   + 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Pd-cvs mailing list