// Test multidimensional sin() and subrange
using namespace oadl;
#include "libstd.oah"
proc sayer(a)
{
if (a.isarray()) {
forall (a[i]) {
if ((i > 0) && !a[i].isarray()) " ";
sayer(a[i]);
}
"\n";
}
else {
say(a);
}
}
proc main()
{
var a, b, sa, sb, i, j, k;
a = new PackFloat(4,4,4);
for (i = 0; i < 2; i++) {
j = 0;
for (k = 0; k < 2; k++) {
a[i+1,j+1,k+1] = math::PI_4;
}
}
b = a[1:2,1,1:2];
sa = math::sin(a);
sb = math::sin(b);
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
for (k = 0; k < 4; k++) {
if (k > 0) " ";
say(sa[i][j][k]);
}
"\n";
}
"\n";
}
for (i = 0; i < 2; i++) {
j = 0;
for (k = 0; k < 2; k++) {
if (k > 0) " ";
say(sb[i][j][k]);
}
"\n";
"\n";
}
}