## How to Test Input Typed to a Procedure to Determi...

Trying to write a generat purpose procedure insteat of having 3 or 4 different named procceduers.

Need to determine the input types of say A,B,C

Proc(A,B,C)

1) A,B,C could be for the form 3/2 , 5x-7 , x^2-sqrt(x+3)  i.e numbers or formulas

2) A,B,C could be 2 elenent lists [2,3]  , [5x-6y,8x+2] ,[2,sqrt(3)]  i.e 2D points

3) A,B,C could be 3 element lists as above    i.e 3D points

4) A,B,C could be 2D vectors

5) A,B,C could be 3D vectors

A, B, C will not be of mixed types but would be good to check A, B, C for consistency and if not retrun an error

Looking to calculate output based on

If type 1) ......

elif type 2).....

.

.

elif type 5)...

end if

return.....

end proc

## New release of Placement Test Suite

by: Maple T.A.

A new release of the Maple T.A. MAA Placement Test Suite  is now available.

The latest release takes advantage of the streamlined interface, accessibility from tablets, and other new features of Maple T.A. 10. It also includes new testing content to determine if your students understand the concepts needed for success in their algebra and precalculus courses; new parallel versions of the calculus concepts readiness test; and improved searching and browsing of testing content.

To learn more, visit What’s New in Maple T.A. MAA Placement Test Suite 10.

eithne

## Acceleration with CUDA...

I have a fairly old laptop, a Toshiba S10 Tecra, windows 7 64 bit and 4 Gb RAM.  It has an NVidia Quadro NVS 150m video card inside and according to NVidia CUDA capable of a compute level to 1.1 which is ok for float[4] but not float[8].  Inititiating the computecabability in maple does indeed bring a score level of 1.1.

Doing any LinearAlgebra matrix calculations with CUDA enabled is maybe 5x's slower than with it disabled.  I run into BLAS errors and screen blankouts at matrix values of 2000.  The video driver is the latest from Toshiba (2010) but not NVidia (2014) I suppose there would be an increased performace with newer drivers but if I'm going to run into the same issue of slower calculations with CUDA enabled there's no point in even testing the newer drivers on an otherwise fine running machine.

Since it is a low end video card is CUDA even worthwhile, will I even notice a speed up with updated drivers?

## Maplesoft Live Webinars

by:

We regularly host live webinars on a variety of topics for our customers, and we wanted to make this information available to the MaplePrimes community as well. We will be posting information about new webinars we think will be of interest approximately once per month.

Partnering with the MAA to Revolutionize Placement Testing

In this webinar, we will demonstrate how the Maple T.A. MAA Placement Test Suite can be used to ease the problem of placement testing and how it can benefit your campus in general.

Other topics include:

• How placement testing contributes to student success

• How the MAA placement tests are created, and rigorously validated

• How valid and reliable the MAA placement tests are for entry level mathematics courses

• How you can use the Maple T.A. Placement Test Suite for easy administration, flexible delivery, and fast results

## Testing of two plane sets for isometry

by:

An isometry of the Euclidean plane is a distance-preserving transformation of the plane.  There are four types: translations,  rotations,  reflections,  and  glide reflections. See http://en.wikipedia.org/wiki/Euclidean_plane_isometry#Classification_of_Euclidean_plane_isometries

Procedure  AreIsometric  checks two plane sets  Set1  and  Set2  and  if there is an isometry of the plane mapping the first set to the second one, then the procedure returns true and false otherwise. Global variable  T  saves the type of isometry and all its parameters. For example, it returns  the rotation center and rotation angle, etc.

Each of the sets  Set1  and  Set2   is the set (or list) consisting of the following objects in any combinations:

1) The points that are defined as a list of coordinates  [х, y] .

2) Segments, which are defined as a set (or list)  of two points  {[x1, y1], [x2, y2]}  or  [[x1, y1], [x2, y2]]  .

3) Curves, which should  be defined as a list of points   [[x1, y1], [x2, y2], ..., [xn, yn]].

Of course, if  n = 2, then the curve is identical to the segment.

Code of the procedure:

AreIsometric:=proc(Set1::{set,list}, Set2::{set,list})

local n1, n2, n3, n4,s1, S, s, l1, l2, S11, f, x0, y0, phi, Sol, x, y, M1, M2, A1, A2, A3, A4, B1, B2, B3, B4, line1, line2, line3, line4, u, v, Sign, g, M, Line1, Line2, Line3, A, B, C, h, AB, CD, Eq, Eq1, T1, T2, i, S1, S2, T11;

global T;

uses combinat;

S1:={};  S2:={};  T1:={}; T2:={};

for i in Set1 do

if i[1]::realcons  then S1:={op(S1),i} else

S1:={op(i), op(S1)};  T1:={op(T1), seq({i[k],i[k+1]}, k=1..nops(i)-1)} fi;

od;

for i in Set2 do

if i[1]::realcons  then S2:={op(S2),i} else

S2:={op(i), op(S2)};  T2:={op(T2), seq({i[k],i[k+1]}, k=1..nops(i)-1)} fi;

od;

n1:=nops(S1);  n2:=nops(S2);  n3:=nops(T1); n4:=nops(T2);

if is(S1=S2) and is(T1=T2) then T:=identity;  return true fi;

if n1<>n2 or n3<>n4 then return false fi;

if n1=1 then T:=[translation, <S2[1,1]-S1[1,1], S2[1,2]-S1[1,2]>];  return true fi;

f:=(x,y,phi)->[(x-x0)*cos(phi)-(y-y0)*sin(phi)+x0, (x-x0)*sin(phi)+(y-y0)*cos(phi)+y0];  g:=(x,y)->[(B^2*x-A^2*x-2*A*B*y-2*A*C)/(A^2+B^2), (A^2*y-B^2*y-2*A*B*x-2*B*C)/(A^2+B^2)];

_Envsignum0 := 1;

s1:=[S1[1], S1[2]];  S:=select(s->is((s1[2,1]-s1[1,1])^2+(s1[2,2]-s1[1,2])^2=(s[2,1]-s[1,1])^2+(s[2,2]-s[1,2])^2),permute(S2, 2));

for s in S do

# Checking for translation

l1:=s[1]-s1[1]; l2:=s[2]-s1[2];

if is(l1=l2) then S11:=map(x->x+l1, S1);

if n3<>0 then T11:={seq(map(x->x+l1, T1[i]), i=1..nops(T1))}; fi;

if n3=0 then  if is(S11=S2) then T:=[translation, convert(l1, Vector)]; return true fi;  else

if is(S11=S2) and is(T11=T2) then T:=[translation, convert(l1, Vector)]; return true fi; fi;

fi;

# Checking for rotation

x0:='x0'; y0:='y0'; phi:='phi'; u:='u'; v:='v'; Sign:='Sign';

if  is(s1[1]-s[1]<>s1[2]-s[2]) then

M1:=[(s1[1,1]+s[1,1])/2, (s1[1,2]+s[1,2])/2]; M2:=[(s1[2,1]+s[2,1])/2, (s1[2,2]+s[2,2])/2]; A1:=s1[1,1]-s[1,1]; B1:=s1[1,2]-s[1,2]; A2:=s1[2,1]-s[2,1]; B2:=s1[2,2]-s[2,2];    line1:=A1*(x-M1[1])+B1*(y-M1[2])=0; line2:=A2*(x-M2[1])+B2*(y-M2[2])=0;

if is(A1*B2-A2*B1<>0) then Sol:=solve({line1, line2}); x0:=simplify(rhs(Sol[1]));   y0:=simplify(rhs(Sol[2])); u:=[s1[1,1]-x0,s1[1,2]-y0]; v:=[s[1,1]-x0,s[1,2]-y0];    else

if is(s[2]-s1[1]=s[1]-s1[2])  then   x0:=(s1[1,1]+s[1,1])/2;  y0:=(s1[1,2]+s[1,2])/2;

if is([x0,y0]<>s1[1]) then  u:=[s1[1,1]-x0,s1[1,2]-y0]; v:=[s[1,1]-x0,s[1,2]-y0]; else

u:=[s1[2,1]-x0,s1[2,2]-y0]; v:=[s[2,1]-x0,s[2,2]-y0]; fi;

else  A3:=s1[2,1]-s1[1,1];  B3:=s1[2,2]-s1[1,2]; A4:=s[2,1]-s[1,1];  B4:=s[2,2]-s[1,2];  line3:=B3*(x-s1[1,1])-A3*(y-s1[1,2])=0;  line4:=B4*(x-s[1,1])-A4*(y-s[1,2])=0;Sol:=solve({line3, line4}); x0:=simplify(rhs(Sol[1])); y0:=simplify(rhs(Sol[2]));

if is(s1[1]=s[1]) then    u:=s1[2]-[x0,y0]; v:=s[2]-[x0,y0]; else

u:=s1[1]-[x0,y0]; v:=s[1]-[x0,y0];  fi;  fi;  fi;

Sign:=signum(u[1]*v[2]-u[2]*v[1]);   phi:=Sign*arccos(expand(rationalize(simplify((u[1]*v[1]+u[2]*v[2])/sqrt(u[1]^2+u[2]^2)/sqrt(v[1]^2+v[2]^2)))));      S11:=expand(rationalize(simplify(map(x->f(op(x), phi), S1))));

if n3<>0 then T11:={seq(expand(rationalize(simplify(map(x->f(op(x), phi), T1[i])))), i=1..nops(T1))}; fi;

if n3=0 then  if is(S11=expand(rationalize(simplify(S2))))  then T:=[rotation, [x0,y0], phi]; return true fi;  else

if is(S11=expand(rationalize(simplify(S2)))) and  is(T11=expand(rationalize(simplify(T2)))) then

T:=[rotation, [x0,y0], phi]; return true fi;  fi;

fi;

od;

# Checking for reflection or glide reflection

for s in S do

AB:=s1[2]-s1[1]; CD:=s[2]-s[1];

if is(AB[1]*CD[2]-AB[2]*CD[1]=0) then  M:=(s1[2]+s[1])/2;

if  is(AB[1]*CD[1]+ AB[2]*CD[2]>0) then  A:=AB[2]; B:=-AB[1];    Line1:=A*(x-M[1])+B*(y-M[2])=0;  else

A:=AB[1]; B:=AB[2];  Line2:=A*(x-M[1])+B*(y-M[2])=0; fi;

else     u:=[AB[1]+CD[1], AB[2]+CD[2]];  A:=u[2]; B:=-u[1];     M:=[(s1[1,1]+s[1,1])/2, (s1[1,2]+s[1,2])/2]; Line3:=A*(x-M[1])+B*(y-M[2])=0;   fi;    C:=-A*M[1]-B*M[2];  h:= simplify(expand(rationalize(s[1]-g(op(s1[1])))));    S11:=expand(rationalize(simplify(map(x->g(op(x))+h, S1))));

if n3<>0 then T11:={seq(expand(rationalize(simplify(map(x->g(op(x))+h, T1[i])))), i=1..nops(T1))}; fi;

if n3=0 then   if is(S11=expand(rationalize(S2))) then

Eq:=A*x+B*y+C=0; Eq1:=`if`(is(coeff(lhs(Eq), y)<>0), y=solve(Eq, y),  x=solve(Eq, x));

if h=[0,0] then  T:=[reflection, Eq1] else T:=[glide_reflection,Eq1,convert(h, Vector)] fi; return true fi; else

if is(S11=expand(rationalize(S2))) and is(T11=expand(rationalize(T2))) then

Eq:=A*x+B*y+C=0; Eq1:=`if`(is(coeff(lhs(Eq), y)<>0), y=solve(Eq, y),  x=solve(Eq, x));

if h=[0,0] then T:=[reflection, Eq1] else

T:=[glide_reflection,Eq1,convert(h, Vector)] fi; return true fi;  fi;

od;

T:='T';   false;

end proc:

Three simple examples:

AreIsometric({[4, 0], [7, 4], [14, 0]}, {[4, 14], [9, 14], [10, 6]});  T;

AreIsometric({[2, 0], [2, 2], [5, 0]}, {[3, 3], [3, 6], [5, 3]});  T;

S1 := {[[5, 5], [5, 20], [10, 15], [15, 20], [15, 5]]}:
S2 := {[[21, 11], [30, 23], [31, 16], [38, 17], [29, 5]]}:
S3 := {[[50, 23], [41, 11], [51, 16], [49, 5], [58, 17]]}:
AreIsometric(S1, S2); T; AreIsometric(S1, S3);

plots[display](plottools[curve](op(S1), thickness = 2, color = green), plottools[curve](op(S2), thickness = 2, color = green), plottools[curve](op(S3), thickness = 2, color = red), scaling = constrained, view = [-1 .. 60, -1 .. 25]);  # Green sets are isometric,  green and red sets aren't

Example with animation:

S1:={[0,0],[-1,2],[2,4],[4,2]}:  S2:={[8,3],[6,6],[8,8],[10,4]}:

AreIsometric(S1, S2);  T;

with(plots): with(plottools):

#  For clarity, instead of points polygons depicted with vertices at these points

N:=50:

A:=seq(rotate(polygon([[0,0],[-1,2],[2,4],[4,2]], color=blue), (k*Pi)/(2*N), [3,7]), k=0..N):  B:=polygon([[8,3],[6,6],[8,8],[10,4]], color=green):  E:=line([3,7], [6,6], color=black, linestyle=2):

C:=seq(rotate(line([3,7], [2,4], color=black, linestyle=2), (k*Pi)/(2*N), [3,7]), k=0..N):  L:=curve([[3,7],[2,4], [-1,2], [0,0],[4,2], [2,4]], color=black, linestyle=2):  T:=textplot([3, 7.2, "Center of rotation"]):

Frames:=seq(display(A[k], B, E,T,L, C[k]), k=1..N+1):

display(seq(Frames[k],k=1..N+1), insequence=true, scaling=constrained);

Finding unique solutions to the problem of Queens (m chess queens on an n×n chessboard not attacking one another). Used the procedures  Queens  and  QueenPic  . See  http://www.mapleprimes.com/posts/200049-Queens-Problem-And-Its-Visualization-With-Maple

Queens(8, 8);  M := [ListTools[Categorize](AreIsometric, S)]:

nops(M);

seq(op(M[k])[1], k = 1 .. %);   # 12 unique solutions from total 92 solutions

QueensPic([%], 4);  #  Visualization of obtained solutions

Finding unique solutions to the problem "Polygons of matches"  (all polygons with specified perimeter and area). See http://www.mapleprimes.com/posts/142884-Polygons-Of-The-Matches

N := 12: S := 6: Polygons(N, S);

M := [ListTools[Categorize](AreIsometric, T)]:

n := nops(M);

seq([op(M[k][1])], k = 1 .. n);  #  7 unique solutions from total 35 solutions with perimeter 12 and area 6

Visual([%], 4);  #  Visualization of obtained solutions

## Maple IDE Testers Wanted

Maple

Maple IDE team is launching a Tester Program that will allow us to incorporate more input in the product design and development process.

We are looking for regular testers for Maple IDE. Your testing complements our in-team testing of new software versions. By enlisting a diverse group of beta testers, we can see how the software performs when it's being used for normal, ordinary tasks. This lets us provide a more стабле Maple IDE with better user experience. As a member...

## Test-Mapler

Maple T.A.

Russian content for Maple T.A.
http://webmath.exponenta.ru/bsd/mapler_test.html

Tests are learning, not just inspectors.

## post Testing policy to Maple TA 2.5...

hi,

I'm currently proctoring for my univeristy math dept.  They ask me to put policy on testing website.  Please help me how to do that? thanks,

## base knowledge about registering mathematical...

i have two quotes :

#1:

You confuse science with engineering, publication with patents. Intellectual property law does not recognize ownership of scientific truth. Your theory is true, or it isn't. You don't 'own' it. An apple does not need Isaac Newton's permission to fall to the ground. The primary protections for inventions are trade secret and patents. The primary protection for other intellectual property is copyright, and wise choices in how you use it and publish it.

## Fran Allen Lecture

by:

Yesterday I attended a lecture by Fran Allen, as part of the "David R. Cheriton School of Computer Science, University of Waterloo, Distinguished Lecture Series".  Allen worked a IBM Research from 1957 to 2002, she was awarded the ACM's Turing Award in 2006.  Here is her biography from Wikipedia (let's hope it is accurate).

Aside from some technical issues (why can't a room full of computer science professors and students successfully attach a laptop to a projector?) the talk was quite interesting.  There were two main sections, the first discussed Allen's career at IBM and the second was about the future of computer science.  Allen's work at IBM focused mostly on compilers and high performance computing.  She made a few interesting comments about the importance of high performance computing.  For example, one of the systems she worked on was designed and used to model the detonations of nuclear weapons.  The development of this system ended the need for the United Stated to perform actual test detonations.

by:

Maplesoft has just released a collection of new engineering products, including MapleSim 3, the latest version of our physical modeling tool. It includes a new hydraulics library, more electrical machines and improved solvers which expand the scope of models it can handle. It also comes with a new project manager, more diagnostic tools, a 3-D visualization preview feature, and other improvements to the interface which reduce the development time. See What’s New in MapleSim 3 for details.

## Numerical solution from procedure...

Good Afternoon,

Would anybody be kind to help me with the attached file. I have created procedures to calculate the Area, center of gravity , section modulus and moment of inertia of a cross section.

I'm testing the worksheet with an existing example from a text book, and the results are as follows

Area = 75*in2

Zxxtop = 119.219*in3

Zxxbott = 133.245*in3

Ixx = 629.212*in4

Zyyleft = 88.583*in3

Zyyright = 88.583*in3

Iyy = 442.917*in4

xbar = 4.722*in

ybar = 5.0*in

## high volume testing with 4.0?...

Is anyone testing in high volume environments with MapleTA. After about a year of continual problems with 3.0 (pretty awful piece of software) and now more with 4.0, I have a hard time believing folks are using the software in high stakes, high volume environments such as placement testing and I'm looking for feedback.

## 'assume' doesn't work as expected...

To evaluate some real integrals I use the 'assume' instruction to make sure all the quantities are real.  But Maple 12 can't seem to deduce the obvious inequalities from this - testing for them gives a FAIL result.  Here is a minimal example:

assume(X,real, Y,real, w>0);

is( (X+w)^2 + Y^2 >= 0);

Hi i am having difficulty converting a text file consisting of words into ascii code. using maple and vice versa.
I dont know how to.

My notepad text is  "(testing)" and i wanted maple to show me "testing"  in ascii code but i just dnt knw how to get it to do it.