[#686] Wall compilation — Michal Rokos <michal@...>
Hi everybody,
[#688] mkmf.rb - add files to clean and distclean targets — Michal Rokos <michal@...>
Hi,
On Thu, 16 Jan 2003, Michal Rokos wrote:
Hi,
Hi,
On Tue, Jan 21, 2003 at 11:16:39AM +0900, Yukihiro Matsumoto wrote:
Hi,
On Tue, Jan 21, 2003 at 06:38:00PM +0900, Yukihiro Matsumoto wrote:
Hi,
On Tue, Jan 21, 2003 at 11:37:35PM +0900, Yukihiro Matsumoto wrote:
Hi,
Hello,
Hi,
Hi,
Hi,
Hi,
[#708] Documentation for thread.rb — Gavin Sinclair <gsinclair@...>
Hi ruby-core,
[#719] nd_end and NODE_NEWLINE (fwd) — Chad Fowler <chad@...>
[#724] Symbols: More Functionality Wanted — Ryan Pavlik <rpav@...>
I've been discussing this for a bit on #ruby-lang on OPN (or freenode or
Hi,
On 20 Jan 2003 at 15:49, Yukihiro Matsumoto wrote:
Hi --
On Thursday, January 23, 2003, 6:28:04 AM, dblack wrote:
Gavin Sinclair <gsinclair@soyabean.com.au> writes:
Hi,
matz@ruby-lang.org (Yukihiro Matsumoto) writes:
Hi,
On Fri, 24 Jan 2003 03:34:46 +0900
[#730] Comments on matrix.rb — Gavin Sinclair <gsinclair@...>
Hi -core,
[#757] Extensions for Time and ParseDate — Ryan Davis <ryand-ruby@...>
Eric and I have been hacking around and we can't stand the lack of
[#759] Adding Test::Unit to CVS — "Nathaniel Talbott" <nathaniel@...>
Matz has already given me the go-ahead to add Test::Unit to CVS, but I
Nathaniel Talbott wrote:
On Wednesday, January 22, 2003, at 07:56 AM, Dave Thomas wrote:
Re: Comments on matrix.rb
On Mon, 20 Jan 2003, Gavin Sinclair wrote:
> - #slice would be a good alias for #minor
The problem with #minor is that it's not a minor, it's a slice.
A minor is a submatrix such that only one row and one column are missing.
The #minor operation allows only 4 possible minors, out of 2*N, and allows
lots of things that are not minors.
> - Matrix#diagonalize() should return a [M:Matrix,D:Matrix] pair such that
> M*D*M.inverse == self
> - ** is too slow. Using matrix diagonalisation is a more efficient algorithm
> and works for all exponents, not just positive integers. Here is a more
> efficient **
> def ** n
> m, d = diagonalize
> (0...d.row_size).each { |i| d[i,i] **= n }
> (m * d * m).inverse
> end
This is not the code I gave you. I wrote m*d*m.inverse, not
(m*d*m).inverse; the parentheses make a big difference.
Also: I made a mistake. Some matrices are not diagonalizable, so there
should be a fallback to another algorithm. That one can be the existing
one, running in O(k*n**3), or it can be a new one, running in
O(log(k)*n**3), following the same pattern as the implementation of
Bignum#**.
(of course those O() marks are slightly wrong, as they depend on the speed
of a lot of other methods that may or may not run in their assumed times)
> - #r should be something more normal, like #modulus (with #r an alias)
#abs is good, especially because (x-y).abs on vectors is a metric.
(see http://mathworld.wolfram.com/Metric.html)
However it wouldn't be good to think of a matrix determinant as an
absolute value, despite mathematicians using the same notation... one
reason is that a det can be negative, while abs's are expected not to.
________________________________________________________________
Mathieu Bouchard http://artengine.ca/matju