Skip to content
This repository was archived by the owner on Jul 10, 2023. It is now read-only.

Implemented Rangeable trait for ranges initializers. Implemented aran… #6

Merged
merged 1 commit into from
Mar 26, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/PHPSci/Kernel/CArray/CArrayWrapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,20 @@
use PHPSci\Kernel\Initializers\Creatable;
use PHPSci\Kernel\LinearAlgebra\Operatable;
use PHPSci\Kernel\Orchestrator\MemoryPointer;
use PHPSci\Kernel\Ranges\Rangeable;
use PHPSci\Kernel\Transform\Transformable;
use PHPSci\PHPSci;

/**
* Class CArrayWrapper
*
* @author Henrique Borba <[email protected]>
* @package PHPSci\Kernel\CArray
*/
abstract class CArrayWrapper implements Stackable, \ArrayAccess, \Countable
{

use Transformable, Creatable, Operatable;
use Transformable, Creatable, Operatable, Rangeable;

/**
* @var
Expand Down
41 changes: 41 additions & 0 deletions src/PHPSci/Kernel/Ranges/Rangeable.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<?php

namespace PHPSci\Kernel\Ranges;

use PHPSci\Kernel\CArray\CArrayWrapper;
use PHPSci\Kernel\Orchestrator\MemoryPointer;
use PHPSci\PHPSci;

/**
* Trait Rangeable
*
* @author Henrique Borba <[email protected]>
* @package PHPSci\Kernel\Ranges
*/
trait Rangeable
{

/**
* Return evenly spaced CArray with values within a given interval.
*
* Values are generated within the half-open interval [start, stop)
* (in other words, the interval including start but excluding stop)
*
* @author Henrique Borba <[email protected]>
* @param float $stop
* @param float $start
* @param float $step
* @return CArrayWrapper
*/
public static function arange(float $stop, float $start = 0., float $step = 1.) : CArrayWrapper {
$new_ptr = \CArray::arange($start, $stop, $step);
return new PHPSci(
new MemoryPointer(
$new_ptr,
$new_ptr->rows,
$new_ptr->cols
)
);
}

}