|
| 1 | +import { broadcastTo } from '../../utils/array.js' |
| 2 | +import { factory } from '../../utils/factory.js' |
| 3 | + |
| 4 | +const name = 'broadcastTo' |
| 5 | +const dependencies = ['typed'] |
| 6 | + |
| 7 | +export const createBroadcastTo = /* #__PURE__ */ factory(name, dependencies, ({ typed }) => { |
| 8 | + /** |
| 9 | + * Broadcast an array to a specified size. |
| 10 | + * |
| 11 | + * Syntax: |
| 12 | + * |
| 13 | + * math.broadcastTo(x, size) |
| 14 | + * |
| 15 | + * Examples: |
| 16 | + * |
| 17 | + * math.broadcastTo([1, 2, 3], [2, 3]) // returns [[1, 2, 3], [1, 2, 3]] |
| 18 | + * math.broadcastTo([2, 3], [2, 2]) // returns [[2, 3], [2, 3]] |
| 19 | + * |
| 20 | + * See also: |
| 21 | + * |
| 22 | + * size, reshape, squeeze, broadcastSizes |
| 23 | + * |
| 24 | + * @param {Array|Matrix} x The array or matrix to broadcast |
| 25 | + * @param {Array|Matrix} size The target size |
| 26 | + * @return {Array} The broadcasted array |
| 27 | + */ |
| 28 | + return typed(name, { |
| 29 | + 'Array, Array': broadcastTo, |
| 30 | + 'Array, Matrix': (arr, size) => broadcastTo(arr, size.toArray()), |
| 31 | + 'Matrix, Array': (M, size) => M.create(broadcastTo(M.toArray(), size)), |
| 32 | + 'Matrix, Matrix': (M1, size) => M1.create(broadcastTo(M1.toArray(), size.toArray())) |
| 33 | + }) |
| 34 | +}) |
0 commit comments