def *(par1)
      out = Vector.new(self)
      if par1.is_a?Numeric
        out.x *= par1
        out.y *= par1
        if out.z != nil
          out.z *= par1
        end
      elsif par1.is_a?Matrix
        return (self.to_matrix * par1).to_vector
      elsif par1.is_a?Vector
        ary1 = [self.x, self.y]
        if out.z != nil
          ary1 << out.z
        end

        ary2 = [par1.x, par1.y]
        if out.z != nil
          ary2 << par1.z
        end

        aryr = Matrix.mult_array(ary1, ary2)
        out.x = aryr[0]
        out.y = aryr[1]
        if aryr[2] != nil
          out.z = aryr[2]
        end
      else
        Error.call "Unable to add '#{par1} to this vector", Error::ERR_HIGH
      end
      return out
    end
def *(par1)
      out = Vector.new(self)
      if par1.is_a?Numeric
        out.x *= par1
        out.y *= par1
        if out.z != nil
          out.z *= par1
        end
      elsif par1.is_a?Matrix
        return (self.to_matrix * par1).to_vector
      elsif par1.is_a?Vector
        ary1 = [self.x, self.y]
        if out.z != nil
          ary1 << out.z
        end

        ary2 = [par1.x, par1.y]
        if out.z != nil
          ary2 << par1.z
        end

        aryr = Matrix.mult_array(ary1, ary2)
        out.x = aryr[0]
        out.y = aryr[1]
        if aryr[2] != nil
          out.z = aryr[2]
        end
      else
        Error.call "Unable to add '#{par1} to this vector", Error::ERR_HIGH
      end
      return out
    end
== Parameters:
 par1:
     This parameter may be a Vector or a number. If it's a Number, it will multiply all coponents of the Vector.
     If it's an other vector, we will multiplie their components 2by2
 == Returns:
 Vector