<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Joe,<br>
<br>
yes, the Memoizer is a good idea.  I did actually look at that a bit
before writing my own solution.  I believe the Memoizer is a better
approach than mine, because it reuses existing mechanisms.  However,
the Memoizer needs a bit of work to make it work seamlessly with the
Fork/Join framework, which is why I abandoned it for my simpler, but
worse, solution.<br>
<br>
Maybe we should try come up with some examples of how Memoizer should
be used together with Fork/Join?<br>
<pre class="moz-signature" cols="72">Regards

Heinz
-- 
Dr Heinz M. Kabutz (PhD CompSci)
Author of "The Java(tm) Specialists' Newsletter"
Sun Java Champion
IEEE Certified Software Development Professional
<a class="moz-txt-link-freetext" href="http://www.javaspecialists.eu">http://www.javaspecialists.eu</a>
Tel: +30 69 75 595 262
Skype: kabutz 
</pre>
<br>
<br>
On 5/25/12 7:05 AM, Joe Bowbeer wrote:
<blockquote
 cite="mid:CAHzJPErpsD-_NM_W5WRwGjYQZwB=AzfP3ZUphnLcTr+mQJUHoQ@mail.gmail.com"
 type="cite">
  <p>Thanks for the examples! I will certainly check them out.</p>
  <p>Regarding a cache for recursive subdivision, search in JCiP and
www for Memoizer and you will find some of our attempts.</p>
  <div class="gmail_quote">On May 24, 2012 3:41 PM, "Dr Heinz M.
Kabutz" <<a moz-do-not-send="true"
 href="mailto:heinz@javaspecialists.eu">heinz@javaspecialists.eu</a>>
wrote:<br type="attribution">
  <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">In
my latest newsletter, I show two examples how we can solve a problem
faster using Fork/Join.  The first is Fibonacci, but a better recursive
algorithm than is found in the JavaDocs.  However, this sum-of-squares
algorithm requires us to do multiplication which is particularly bad
with BigInteger.  I thus also implemented the Karatsuba multiplication
algorithm, including a way to do it with the Fork/Join framework.<br>
    <br>
I also implemented a FibonacciCache.  I believe that caching should
maybe be solved in general for the recursive decomposition approach
with RecursiveTask.  In my cache, if one thread tries to do work with
which another thread is already busy, then he waits until the other
thread has completed his task.  This prevents duplication of work.  I
bet that this is a common problem with recursive decomposition
algorithms.  Have any of you thought of writing a cache that solves
this problem in general and then making that available in the JDK?<br>
    <br>
Also, could we *please* change the example in the RecursiveTask
JavaDocs.  It is embarrassing having an exponential algorithm as an
example of how you would use RecursiveTask.  So if we add 1000x the
number of processors, we can now solve case n+10?<br>
    <br>
Here is a direct link to the newsletter for those who are interested: <a
 moz-do-not-send="true"
 href="http://www.javaspecialists.eu/archive/Issue201.html"
 target="_blank">http://www.javaspecialists.eu/archive/Issue201.html</a><br>
    <br>
Regards<br>
    <br>
Heinz<br>
-- <br>
Dr Heinz M. Kabutz (PhD CompSci)<br>
Author of "The Java(tm) Specialists' Newsletter"<br>
Sun Java Champion<br>
IEEE Certified Software Development Professional<br>
    <a moz-do-not-send="true" href="http://www.javaspecialists.eu"
 target="_blank">http://www.javaspecialists.eu</a><br>
Tel: <a moz-do-not-send="true" href="tel:%2B30%2069%2075%20595%20262"
 value="+306975595262" target="_blank">+30 69 75 595 262</a><br>
Skype: kabutz<br>
    <br>
_______________________________________________<br>
Concurrency-interest mailing list<br>
    <a moz-do-not-send="true"
 href="mailto:Concurrency-interest@cs.oswego.edu" target="_blank">Concurrency-interest@cs.oswego.edu</a><br>
    <a moz-do-not-send="true"
 href="http://cs.oswego.edu/mailman/listinfo/concurrency-interest"
 target="_blank">http://cs.oswego.edu/mailman/listinfo/concurrency-interest</a><br>
  </blockquote>
  </div>
</blockquote>
</body>
</html>