From d3ac759ff0db335335904e997ec7d82083e57ff5 Mon Sep 17 00:00:00 2001
From: Mark Jenkinson <mark@fmrib.ox.ac.uk>
Date: Tue, 22 Nov 2011 14:04:34 +0000
Subject: [PATCH] Added some more trigonometry functions

---
 fslmaths.cc | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/fslmaths.cc b/fslmaths.cc
index 47be3d1..8d5f6bb 100755
--- a/fslmaths.cc
+++ b/fslmaths.cc
@@ -52,6 +52,10 @@ int printUsage(const string& programName)
   cout << " -log   : natural logarithm" << endl;
   cout << " -sin   : sine function" << endl;
   cout << " -cos   : cosine function" << endl;
+  cout << " -tan   : tangent function" << endl;
+  cout << " -asin  : arc sine function" << endl;
+  cout << " -acos  : arc cosine function" << endl;
+  cout << " -atan  : arc tangent function" << endl;
   cout << " -sqr   : square" << endl;
   cout << " -sqrt  : square root" << endl;
   cout << " -recip : reciprocal (1/current image)" << endl;
@@ -670,6 +674,43 @@ if (!separatenoise)
 	    for(int x=0;x<inputVolume.xsize();x++)
               inputVolume.value(x,y,z,t)=(T)sin((double)inputVolume.value(x,y,z,t));
     }
+    /***************************************************************/
+    else if (string(argv[i])=="-tan")
+    {
+      for(int t=0;t<inputVolume.tsize();t++)           
+        for(int z=0;z<inputVolume.zsize();z++)
+          for(int y=0;y<inputVolume.ysize();y++)	    
+	    for(int x=0;x<inputVolume.xsize();x++)
+              inputVolume.value(x,y,z,t)=(T)tan((double)inputVolume.value(x,y,z,t));
+    }
+    /***************************************************************/
+    else if (string(argv[i])=="-asin")
+    {
+      for(int t=0;t<inputVolume.tsize();t++)           
+        for(int z=0;z<inputVolume.zsize();z++)
+          for(int y=0;y<inputVolume.ysize();y++)	    
+	    for(int x=0;x<inputVolume.xsize();x++)
+              inputVolume.value(x,y,z,t)=(T)asin((double)inputVolume.value(x,y,z,t));
+    }
+    /***************************************************************/
+    else if (string(argv[i])=="-acos")
+    {
+      for(int t=0;t<inputVolume.tsize();t++)           
+        for(int z=0;z<inputVolume.zsize();z++)
+          for(int y=0;y<inputVolume.ysize();y++)	    
+	    for(int x=0;x<inputVolume.xsize();x++)
+              inputVolume.value(x,y,z,t)=(T)acos((double)inputVolume.value(x,y,z,t));
+    }
+    /***************************************************************/
+    else if (string(argv[i])=="-atan")
+    {
+      for(int t=0;t<inputVolume.tsize();t++)           
+        for(int z=0;z<inputVolume.zsize();z++)
+          for(int y=0;y<inputVolume.ysize();y++)	    
+	    for(int x=0;x<inputVolume.xsize();x++)
+              inputVolume.value(x,y,z,t)=(T)atan((double)inputVolume.value(x,y,z,t));
+    }
+    /***************************************************************/
     /* Uncorrected nonparametric P-value, assuming t-dim is perm-dim */
     else if (string(argv[i])=="-pval" || string(argv[i])=="-pval0")
     {
-- 
GitLab