Example #1
0
 public function add(self $vector) : self
 {
     if ($this->dimension() !== $vector->dimension()) {
         throw new VectorsMustMeOfTheSameDimensionException();
     }
     $vector->rewind();
     $numbers = $this->numbers->reduce([], function (array $numbers, float $number) use($vector) : array {
         $numbers[] = $number + $vector->current();
         $vector->next();
         return $numbers;
     });
     return new self(...$numbers);
 }
Example #2
0
 public function testSum()
 {
     $vector = new Vector(1, 2, 3, -4);
     $this->assertSame(2.0, $vector->sum());
 }