broadcast_function
broadcast_function(f)
Returns a function broadcast_f
such that broadcast_function(f)(As...) === broadcast(f, As...)
. Most useful in the form const broadcast_f = broadcast_function(f)
.
Examples
julia> foo = [1 2];
julia> bar = [1; 2];
julia> function f(x,y)
-(x+y)
end;
julia> g = broadcast_function(f);
julia> baz = g(foo, bar)
2x2 Array{Int64,2}:
-2 -3
-3 -4
julia> g(foo, [3:1:6])
4x2 Array{Int64,2}:
-4 -5
-5 -6
-6 -7
-7 -8
julia> f(x) = 2 * x;
julia> broadcast_f = broadcast_function(f);
julia> broadcast_f([1, 2, 3])
3-element Array{Int64,1}:
2
4
6
In this example, the broadcast_function
is used to create broadcast_f
, which is a function equivalent to broadcast(f, As...)
. The created broadcast_f
function can then be used to apply the broadcasting operation on an input array [1, 2, 3]
using the original function f(x)
.
julia> g(x, y) = x + y;
julia> broadcast_g = broadcast_function(g);
julia> broadcast_g([1, 2, 3], [10, 20, 30])
3-element Array{Int64,1}:
11
22
33
In this example, broadcast_function
is used to create broadcast_g
, which is a function equivalent to broadcast(g, As...)
. The broadcast_g
function is then used to apply the broadcasting operation on two input arrays [1, 2, 3]
and [10, 20, 30]
using the original function g(x, y)
.
Common mistake example:
julia> h(x) = x^2;
julia> broadcast_h = broadcast_function(h);
julia> broadcast_h(1, 2, 3)
ERROR: MethodError: no method matching h(::Int64, ::Int64, ::Int64)
In this example, the broadcast_function
is used to create broadcast_h
, but the original function h(x)
does not accept multiple arguments. It's important to ensure that the original function can handle broadcasting operations with multiple input arrays or values.
See Also
User Contributed Notes
Add a Note
The format of note supported is markdown, use triple backtick to start and end a code block.