Skip to content

Commit

Permalink
GITBOOK-45: support native signed int
Browse files Browse the repository at this point in the history
  • Loading branch information
Gonmeso authored and gitbook-bot committed Jan 22, 2024
1 parent 9551a8c commit b16d92b
Show file tree
Hide file tree
Showing 12 changed files with 11 additions and 291 deletions.
16 changes: 4 additions & 12 deletions docs/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,6 @@
* [Contribute](framework/contribute.md)
* [Compatibility](framework/compatibility.md)
* [Numbers](framework/numbers/README.md)
* [Signed Integer](framework/numbers/signed-integer/README.md)
* [int.new](framework/numbers/signed-integer/int.new.md)
* [int.div\_rem](framework/numbers/signed-integer/int.div\_rem.md)
* [int.abs](framework/numbers/signed-integer/int.abs.md)
* [int.max](framework/numbers/signed-integer/int.max.md)
* [int.min](framework/numbers/signed-integer/int.min.md)
* [int.sign](framework/numbers/signed-integer/int.sign.md)
* [Fixed Point](framework/numbers/fixed-point/README.md)
* [fp.new](framework/numbers/fixed-point/fp.new.md)
* [fp.new\_unscaled](framework/numbers/fixed-point/fp.new\_unscaled.md)
Expand Down Expand Up @@ -49,7 +42,7 @@
* [complex.cosh](framework/numbers/complex-number/complex.cosh.md)
* [complex.exp](framework/numbers/complex-number/complex.exp.md)
* [complex.exp2](framework/numbers/complex-number/complex.exp2.md)
* [complex.from_polar](framework/numbers/complex-number/complex.from_polar.md)
* [complex.from\_polar](framework/numbers/complex-number/complex.from\_polar.md)
* [complex.img](framework/numbers/complex-number/complex.img.md)
* [complex.ln](framework/numbers/complex-number/complex.ln.md)
* [complex.log2](framework/numbers/complex-number/complex.log2.md)
Expand All @@ -65,7 +58,7 @@
* [complex.sqrt](framework/numbers/complex-number/complex.sqrt.md)
* [complex.tan](framework/numbers/complex-number/complex.tan.md)
* [complex.tanh](framework/numbers/complex-number/complex.tanh.md)
* [complex.to_polar](framework/numbers/complex-number/complex.to_polar.md)
* [complex.to\_polar](framework/numbers/complex-number/complex.to\_polar.md)
* [complex.zero](framework/numbers/complex-number/complex.zero.md)
* [Operators](framework/operators/README.md)
* [Tensor](framework/operators/tensor/README.md)
Expand Down Expand Up @@ -153,13 +146,13 @@
* [tensor.reduce\_log\_sum](framework/operators/tensor/tensor.reduce\_log\_sum.md)
* [tensor.unique](framework/operators/tensor/tensor.unique.md)
* [tensor.compress](framework/operators/tensor/tensor.compress.md)
* [tensor.layer_normalization](framework/operators/tensor/tensor.layer_normalization.md)
* [tensor.layer\_normalization](framework/operators/tensor/tensor.layer\_normalization.md)
* [Neural Network](framework/operators/neural-network/README.md)
* [nn.relu](framework/operators/neural-network/nn.relu.md)
* [nn.leaky\_relu](framework/operators/neural-network/nn.leaky\_relu.md)
* [nn.sigmoid](framework/operators/neural-network/nn.sigmoid.md)
* [nn.softmax](framework/operators/neural-network/nn.softmax.md)
* [nn.softmax_zero](framework/operators/neural-network/nn.softmax_zero.md)
* [nn.softmax\_zero](framework/operators/neural-network/nn.softmax\_zero.md)
* [nn.logsoftmax](framework/operators/neural-network/nn.logsoftmax.md)
* [nn.softsign](framework/operators/neural-network/nn.softsign.md)
* [nn.softplus](framework/operators/neural-network/nn.softplus.md)
Expand Down Expand Up @@ -188,7 +181,6 @@
* [sequence.sequence\_insert](framework/operators/sequence/sequence.sequence\_insert.md)
* [sequence.concat\_from\_sequence](framework/operators/sequence/sequence.concat\_from\_sequence.md)


## 🏛 Hub

* [Models](hub/algorithms.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/academy/tutorials/mnist-classification-with-orion.md
Original file line number Diff line number Diff line change
Expand Up @@ -458,7 +458,7 @@ fn fc1_bias() -> Tensor<i32> {

#### Signed Integer in Orion

In Cairo, there are no built-in signed integers. However, in the field of machine learning, they are very useful. So Orion introduced a full implementation of [Signed Integer](../../framework/numbers/signed-integer/). It is represented by a struct containing both the magnitude and its sign as a boolean.
In Cairo, there are no built-in signed integers. However, in the field of machine learning, they are very useful. So Orion introduced a full implementation of [Signed Integer](broken-reference). It is represented by a struct containing both the magnitude and its sign as a boolean.

The magnitude represents the absolute value of the number, and the sign indicates whether the number is positive or negative.

Expand Down
1 change: 0 additions & 1 deletion docs/framework/get-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ use core::array::{ArrayTrait, SpanTrait};

use orion::operators::tensor::{TensorTrait, Tensor, I32Tensor};
use orion::operators::nn::{NNTrait, I32NN};
use orion::numbers::signed_integer::i32::{i32, IntegerTrait};

fn relu_example() -> Tensor<i32> {
let tensor = TensorTrait::<i32>::new(
Expand Down
2 changes: 1 addition & 1 deletion docs/framework/numbers/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

A full implementation of Signed Integer, Fixed Point and Complex Number in Cairo.

<table data-card-size="large" data-view="cards"><thead><tr><th align="center"></th><th align="center"></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center"></td><td align="center"><strong>Signed Integer</strong></td><td></td><td><a href="signed-integer/">signed-integer</a></td></tr><tr><td align="center"></td><td align="center"><strong>Fixed Point</strong></td><td></td><td><a href="fixed-point/">fixed-point</a></td></tr><tr><td align="center"></td><td align="center"><strong>Complex Number</strong></td><td></td><td><a href="complex-number/">complex-number</a> </td></tr></tbody></table>
<table data-card-size="large" data-view="cards"><thead><tr><th align="center"></th><th align="center"></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center"></td><td align="center"><strong>Signed Integer</strong></td><td></td><td><a href="broken-reference">Broken link</a></td></tr><tr><td align="center"></td><td align="center"><strong>Fixed Point</strong></td><td></td><td><a href="fixed-point/">fixed-point</a></td></tr><tr><td align="center"></td><td align="center"><strong>Complex Number</strong></td><td></td><td><a href="complex-number/">complex-number</a></td></tr></tbody></table>
80 changes: 0 additions & 80 deletions docs/framework/numbers/signed-integer/README.md

This file was deleted.

28 changes: 0 additions & 28 deletions docs/framework/numbers/signed-integer/int.abs.md

This file was deleted.

34 changes: 0 additions & 34 deletions docs/framework/numbers/signed-integer/int.div_rem.md

This file was deleted.

30 changes: 0 additions & 30 deletions docs/framework/numbers/signed-integer/int.max.md

This file was deleted.

31 changes: 0 additions & 31 deletions docs/framework/numbers/signed-integer/int.min.md

This file was deleted.

38 changes: 0 additions & 38 deletions docs/framework/numbers/signed-integer/int.new.md

This file was deleted.

29 changes: 0 additions & 29 deletions docs/framework/numbers/signed-integer/int.sign.md

This file was deleted.

11 changes: 5 additions & 6 deletions docs/framework/operators/neural-network/nn.gemm.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# NNTrait::gemm
# nn.gemm

```rust
fn gemm(
Expand All @@ -12,19 +12,18 @@
) -> Tensor<T>;
```

Performs General Matrix multiplication: https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3
Performs General Matrix multiplication: [https://en.wikipedia.org/wiki/Basic\_Linear\_Algebra\_Subprograms#Level\_3](https://en.wikipedia.org/wiki/Basic\_Linear\_Algebra\_Subprograms#Level\_3)

* A' = transpose(A) if transA else A
* B' = transpose(B) if transB else B

Compute `Y = alpha * A' * B' + beta * C`, where input tensor A has shape (M, K) or (K, M), input tensor B has shape (K, N) or (N, K), input tensor C is broadcastable to shape (M, N), and output tensor Y has shape (M, N).
`A` will be transposed before doing the computation if attribute `transA` is `true`, same for `B` and `transB`.
Compute `Y = alpha * A' * B' + beta * C`, where input tensor A has shape (M, K) or (K, M), input tensor B has shape (K, N) or (N, K), input tensor C is broadcastable to shape (M, N), and output tensor Y has shape (M, N). `A` will be transposed before doing the computation if attribute `transA` is `true`, same for `B` and `transB`.

## Args

* `A`(`Tensor<T>`) - Input tensor A. The shape of `A` should be (M, K) if `transA` is `false`, or (K, M) if `transA` is `true`.
* `B`(`Tensor<T>`) - Input tensor B. The shape of `B` should be (K, N) if `transB` is `false`, or (N, K) if `transB` is `true`.
* `C`(`Option<Tensor<T>>`) - Optional input tensor C. The shape of C should be unidirectional broadcastable to (M, N).
* `C`(`Option<Tensor<T>>`) - Optional input tensor C. The shape of C should be unidirectional broadcastable to (M, N).
* `alpha`(`Option<T>`) - Optional scalar multiplier for the product of input tensors `A * B`.
* `beta`(`Option<T>`) - Optional scalar multiplier for input tensor `C`.
* `transA`(`bool`) - Whether `A` should be transposed.
Expand Down Expand Up @@ -64,4 +63,4 @@ A `Tensor<T>` of shape (M, N).
return y;
}
>>> tensor of shape [3;5]
````
```

0 comments on commit b16d92b

Please sign in to comment.