Joe Riel

9660 Reputation

23 Badges

20 years, 6 days

MaplePrimes Activity


These are replies submitted by Joe Riel

Could you elaborate on why it was "a horrible decision"? Because the unwary can now do
f(x) := x^3;
thinking they have created a procedure? Seems like the remember procedure would have been a bit tricky. It would need special evaluation rules to avoid evaluating the left side of the equation, but should probably evaluate the right side.
I own a regular bench scraper and a couple of scraper planes, but no round scrapers. Round is more work---the porch glider had a lot of curved pieces in the backrest, and sawing them was tricky. I've got a small bowsaw that is supposed to be able to cut curves, but it cuts so slow I instead used the Ryoba (Japanese saw with crosscut and rip teeth on opposing edges) with a fairly aggressive bend (edge essentially parallel to the face of the board so it can flex with the curve). With the faces waxed, that worked surprisingly well, much faster than the bowsaw. Finished the pieces with spoke shaves. I like scrapers, but need more practice with them. Sometimes they work great, other times not so well. I've never got the scraper planes to work particularly well. I collect tools for use---none are for display. About the only new tools I've purchased are the Japanese saws and chisels; they don't show up in yardsales or swapmeets around here. Lie-Nielson makes some nice stuff, my dad has some of their pieces. I hadn't heard of the Holtey---I see it's based on the Norris. A bit out of my price range, but nice to look it and think about.
Try modifying grtw to the following:
grtw := proc()
global libname, grOptionMetricPath, grOptionqloadPath, grF_checkOS;
local griidir;
    griidir := "/usr/local/share/maple/apps/grii";  # modify per your setup
    libname := sprintf("%s/lib", griidir), libname;
    readlib(grii);
    grtensor();
    grF_checkOS := () -> `Unix`;                    # reassign grF_checkOS to always return `Unix`.
    grOptionqloadPath := sprintf("%s/metrics", griidir);
end proc:
What's the tool in page 6 on that link? Looks like a small round scraper. Must be a luthier's tool. Do you burnish it get an edge? When I started tool collecting there was, by luck, a small woodworking shop in town that carried mostly Japanese tools. So I picked up a single chisel and a few waterstones. Later I purchased a saw and a plane. I was amazed at the difference between these tools and comparable American/European tools. Out of the box, the edges of the Japanese tools are much better. 'Course, you need to be able to maintain that edge, but I've mostly found that easier to do with the Japanese tools and the waterstones. Still haven't mastered tapping out the hollow of a chisel when, after lots of resharpening, that is required.
RealRange(a,a) is simplified to a, so the map has no affect. The following simplification works fine
RealRangeUnion:=proc(L::list)
    op(OrProp(op(L)));
end proc:
Because the result is a sequence, it makes more sense to me for the input to be a sequence. So I'd change the interface and use
RealRangeUnion:=proc()
    op(OrProp(_passed));
end proc:
RealRange(Open(-2),-1), RealRange(Open(0),1), RealRange(1/2,2), -3, -2);
                -3, RealRange(-2, -1), RealRange(Open(0), 2)
At this point one wonders if the procedure is even necessary. One could also use the operator form,
RealRangeUnion := () -> op(OrProp(_passed)):
or the slower composition
RealRangeUnion := op@OrProp:
Note that with the exception of the original routine, all these return BottomProp when the list/argseq is empty:
RealRangeUnion();
                  BottomProp
Kudos to Jacques for passing the 500 post mark. Onward to 1000!
Nothing special would have to be done for t_i; the only trick is entering it in 2D, which can currently be done as t\_i (type the backslash before the underscore). I doubt that displaying indexed variables with brackets rather than subscripts will go over well, there is a lot of (Maple) history displaying indexed variables as subscripts. It should be possible to correctly parse (for copying) an output to determine whether it is a literal subscript or an indexed subscript---I don't have a clue how this is accomplished, but the output regions in the mw files for the different types that look alike are different (they are encoded, alas).
Nice looking shop, I can only dream. My wife's car get's half the garage. I'm an occasional woodworker. With the exception of a ratty lathe, I only have hand tools, so my production rate is rather slow. My bench is sugar maple. Ripping the 8/4 stock for it with a homemade bowsaw was quite an experience. Now I mostly use Japanese saws and chisels, though I prefer push planes (various Stanleys picked up at flea markets) to the Japanese pull planes. Last big project was a porch swing/glider, but that was a while ago. One of these days I'll get around to finishing a tool chest---the chest is together (and holds my tools) but it needs a lid and drawers for an internal cabinet to make it useful. An advantage of using handtools is that they take up very little room, the downside is that even small projects take a while.
We can modify S to return just the value at 0:
S:= c-> dsolve({ode, (D(y))(.5) = 0, y(0.5) = c}, numeric, y(x), range=0..0.5, output=Array(1..1,[0]))[2,1][1,2];
Passing this S to fsolve allows a solution, with a few warnings:
fsolve(S, 1.2 .. 1.3);
Warning, unable to store _EnvDSNumericSaveDigits when datatype=integer[4]
Warning, unable to store _EnvDSNumericSaveDigits when datatype=integer[4]
Warning, unable to store _EnvDSNumericSaveDigits when datatype=integer[4]
Warning, unable to store _EnvDSNumericSaveDigits when datatype=integer[4]
Warning, unable to store _EnvDSNumericSaveDigits when datatype=integer[4]
Warning, unable to store _EnvDSNumericSaveDigits when datatype=integer[4]
                                 1.250000037
S(1.250000037);
                                                 -9
                          -1.42240910498536872 10  
We can modify S to return just the value at 0:
S:= c-> dsolve({ode, (D(y))(.5) = 0, y(0.5) = c}, numeric, y(x), range=0..0.5, output=Array(1..1,[0]))[2,1][1,2];
Passing this S to fsolve allows a solution, with a few warnings:
fsolve(S, 1.2 .. 1.3);
Warning, unable to store _EnvDSNumericSaveDigits when datatype=integer[4]
Warning, unable to store _EnvDSNumericSaveDigits when datatype=integer[4]
Warning, unable to store _EnvDSNumericSaveDigits when datatype=integer[4]
Warning, unable to store _EnvDSNumericSaveDigits when datatype=integer[4]
Warning, unable to store _EnvDSNumericSaveDigits when datatype=integer[4]
Warning, unable to store _EnvDSNumericSaveDigits when datatype=integer[4]
                                 1.250000037
S(1.250000037);
                                                 -9
                          -1.42240910498536872 10  
S is a procedure. All but the final argument to subs must be equations, or sets or lists of equations. To create a procedure that returns udot at a particular time (f?) you could do
udot := ff ->  eval(diff(y(f),f), S(a)(ff));
udot(0.1);
              3.50813458229605413
S is a procedure. All but the final argument to subs must be equations, or sets or lists of equations. To create a procedure that returns udot at a particular time (f?) you could do
udot := ff ->  eval(diff(y(f),f), S(a)(ff));
udot(0.1);
              3.50813458229605413
The color scheme is a bit garish for my taste 8-). I prefer a tung oil finish on sugar maple. Click. Suddenly I realize the origin of acer's pseudonym. Acer saccharum, the sugar maple tree. My latin is rusty.
How about uploading it to this site. I'd rather not be subjected to the delay and advertisements at that annoying site (megaupload).
How about uploading it to this site. I'd rather not be subjected to the delay and advertisements at that annoying site (megaupload).
You could use the layout palette. Insert the third symbol (subliteral) in the layout palette. Replace the A with a t, the asterisk (I think that is what it, it's rather small) with a 0. That creates a subscripted t0, using xml, that behaves like a symbol (it is a symbol, not an indexed name). That's more work than I care to do. Is there a keyboard shortcut to do this? One crude way is to use the macro command. Execute macro(t_0 = t0); where the t0 is entered using the palette. Subsequently, typing t_0 (or t[0]) causes the xml symbol to be inserted.
First 170 171 172 173 174 175 176 Last Page 172 of 195