##########################################
# Klassenmethoden
##########################################
ClassFixedVector.new(n)
	^self.sys_new_vector(n)
!
ClassFixedVector.new_with(ele)
	|result|
    result = self.new(1);
	result.set_nth(0,ele);
    ^result
!
ClassFixedVector.new_with_two(ele1,ele2)
	|result|
    result = self.new(2);
	result.set_nth(0,ele1);
	result.set_nth(1,ele2);
    ^result
!
ClassFixedVector.new_with_three(ele1,ele2,ele3)
	|result|
    result = self.new(3);
	result.set_nth(0,ele1);
	result.set_nth(1,ele2);
	result.set_nth(2,ele3);
    ^result
!
ClassFixedVector.empty_vector()
	^self.new(0)
!

##########################################
# Zugriff
##########################################
FixedVector.length
	self.sys_vector_length()
!
FixedVector.size
	self.sys_vector_length()
!
FixedVector.nth(n)
	self.sys_slot_n(n)
!
FixedVector.set_nth(n,v)
	self.sys_set_slot_n(n,v)
!
FixedVector.at(n)
	self.sys_slot_n(n)
##########################################
# Kopieren
##########################################
!
FixedVector.copy_entries_from(another)
	|i max|
    i=0;
    max = self.size.min(another.size);
	while (i < max)
		self.set_nth(i,another.nth(i));
		i = i + 1
	end
##########################################
# Ausgeben
##########################################
!
FixedVector.short_print()
	"<Vector ".simple_print();
	self.size.print();
	">".simple_print()

!
FixedVector.print_from_to(from,to)
	while (from < to)
		self.nth(from).print();
	    from = from +1;
		if from < to then
            ",".simple_print()
		endif
    end
!
FixedVector.print_from_to(from,to)
	if from >= to 
	then 
      	^nil 
	else 
		self.nth(from).print();
		from = from+1;
		if from < to then
            ",".simple_print()
		endif;
	 	self.print_from_to(from,to)
    endif
!


FixedVector.print()
	"(".simple_print();
	self.print_from_to(0,self.size.min(10));
	if self.size>10 then "...".simple_print() endif;
	")".simple_print()

!
FixedVector.asFixedVector()
	self

#eof
