[#10209] Market for XML Web stuff — Matt Sergeant <matt@...>

I'm trying to get a handle on what the size of the market for AxKit would be

15 messages 2001/02/01

[#10238] RFC: RubyVM (long) — Robert Feldt <feldt@...>

Hi,

20 messages 2001/02/01
[#10364] Re: RFC: RubyVM (long) — Mathieu Bouchard <matju@...> 2001/02/05

[#10708] Suggestion for threading model — Stephen White <spwhite@...>

I've been playing around with multi-threading. I notice that there are

11 messages 2001/02/11

[#10853] Re: RubyChangeRequest #U002: new proper name for Hash#indexes, Array#indexes — "Mike Wilson" <wmwilson01@...>

10 messages 2001/02/14

[#11037] to_s and << — "Brent Rowland" <tarod@...>

list = [1, 2.3, 'four', false]

15 messages 2001/02/18

[#11094] Re: Summary: RCR #U002 - proper new name fo r indexes — Aleksi Niemel<aleksi.niemela@...>

> On Mon, 19 Feb 2001, Yukihiro Matsumoto wrote:

12 messages 2001/02/19

[#11131] Re: Summary: RCR #U002 - proper new name fo r indexes — "Conrad Schneiker" <schneik@...>

Robert Feldt wrote:

10 messages 2001/02/19

[#11251] Programming Ruby is now online — Dave Thomas <Dave@...>

36 messages 2001/02/21

[#11469] XML-RPC and KDE — schuerig@... (Michael Schuerig)

23 messages 2001/02/24
[#11490] Re: XML-RPC and KDE — schuerig@... (Michael Schuerig) 2001/02/24

Michael Neumann <neumann@s-direktnet.de> wrote:

[#11491] Negative Reviews for Ruby and Programming Ruby — Jim Freeze <jim@...> 2001/02/24

Hi all:

[#11633] RCR: shortcut for instance variable initialization — Dave Thomas <Dave@...>

13 messages 2001/02/26

[#11652] RE: RCR: shortcut for instance variable initialization — Michael Davis <mdavis@...>

I like it!

14 messages 2001/02/27

[#11700] Starting Once Again — Ron Jeffries <ronjeffries@...>

OK, I'm starting again with Ruby. I'm just assuming that I've

31 messages 2001/02/27
[#11712] RE: Starting Once Again — "Aaron Hinni" <aaron@...> 2001/02/27

> 2. So far I think running under TextPad will be better than running

[#11726] Re: Starting Once Again — Aleksi Niemel<zak@...> 2001/02/28

On Wed, 28 Feb 2001, Aaron Hinni wrote:

[ruby-talk:11704] Re: Array bugs?

From: "Christoph Rippel" <crippel@...>
Date: 2001-02-27 17:46:15 UTC
List: ruby-talk #11704
> From: ts [mailto:decoux@moulon.inra.fr]
[...]
>  A little patch, I've forgotten to re-define Array#<=>

Before anything you probably should know (easy to
change of course) that my orginal "unsigned long long int" 
encoding scheme is flawed ...

---------------------
The orginal Array (normal Hashing is
virtually the same)

def  include_pair a,n
	@bag <<  (a+ (b << Fixnum::Maxlog)) 
end	


$ time ruby Untangle.rb
true
false
[3]
[1, 2, 3, [...], [...]]
[1, 2, [...], [1, 2, 3, [...], [...]]]
true
true
false

real    0m29.272s
user    0m24.755s
sys     0m0.500s


---------------------
Your version (note you have Thread
protection)  
$ time ruby b.rb
true
false
[3]
[1, 2, 3, [...], [...]]
[1, 2, [...], [1, 2, 3, [...], [...]]]
true
true
false

real    0m31.255s
user    0m30.934s
sys     0m0.090s


---------------------
New Id-Pair encoding scheme
$ time ruby UntangleNew.rb
true
false
[3]
[1, 2, 3, [...], [...]]
[1, 2, [...], [1, 2, 3, [...], [...]]]
true
true
false

real    0m2.033s
user    0m1.692s
sys     0m0.240s

---------------------

class Object 
##########################
# In general just ignore the bag
##########################
def  untangled_equal? (other, bag)
	  self == other
end

class IdBag
def initialize
	@bag = {}
end
def  sym_pair_include a, b
	@bag[SymIdPair.new a,b] =1
end	
def sym_pair_include? a,b
	@bag.key? (SymIdPair.new a,b)
end	

private 
class SymIdPair
def initialize l,r
	if l > r
		@l = l; @r = r
	else
		@l = r; @r = l
	end
#I believe that a scheme
# based on 
# if l > r
#	@l = l+ 11*r; @r = r
# else
#	@l = r+ 11*r; @r = l
# end
# in VALUE -i.e. 
# ``unsigned long int'' arithmetic
# is probably more robust in
# certain situations (not measurable
# slower in general)
end		
def hash;	@l end
def eql?(other)
	@r.eql?  (other.r)
end	
protected 
	attr_reader :r
end
end                        
end

##########################
class Array
def  untangled_equal?  (other,id_bag)
	return false unless other.kind_of? Array
	return false unless length == other.length
	id_bag.sym_pair_include  id,  other.id 
	return true if  id == other.id
	for i in 0...length do
		next if id_bag.sym_pair_include? self[i].id, other[i].id
		if self[i].untangled_equal? (other[i], id_bag) 
			next
		else
			return false
		end
	end	
	return true
end
def  == (other)
	untangled_equal? (other, IdBag.new )
end
end



Christoph


In This Thread

Prev Next