| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package ops
- import "makarna/pkg/backend/cpu"
- // Scale multiplies all elements by a scalar (in-place)
- func Scale(t *cpu.Tensor, s float32) {
- data := t.DataFloat32()
- for i := range data {
- data[i] *= s
- }
- }
- // AddScalar adds a scalar to all elements (in-place)
- func AddScalar(t *cpu.Tensor, s float32) {
- data := t.DataFloat32()
- for i := range data {
- data[i] += s
- }
- }
- // Clamp clamps all values to [min, max] (in-place)
- func Clamp(t *cpu.Tensor, min, max float32) {
- data := t.DataFloat32()
- for i := range data {
- if data[i] < min {
- data[i] = min
- } else if data[i] > max {
- data[i] = max
- }
- }
- }
- // Neg negates all elements (in-place)
- func Neg(t *cpu.Tensor) {
- data := t.DataFloat32()
- for i := range data {
- data[i] = -data[i]
- }
- }
- // Abs takes absolute value of all elements (in-place)
- func Abs(t *cpu.Tensor) {
- data := t.DataFloat32()
- for i := range data {
- if data[i] < 0 {
- data[i] = -data[i]
- }
- }
- }
|