Lines Matching refs:v

37 destroy(v::CeedVector) = C.CeedVectorDestroy(v.ref) # COV_EXCL_LINE
38 Base.getindex(v::CeedVector) = v.ref[]
40 Base.summary(io::IO, v::CeedVector) = print(io, length(v), "-element CeedVector")
41 function Base.show(io::IO, ::MIME"text/plain", v::CeedVector)
42 summary(io, v)
44 witharray_read(v, MEM_HOST) do arr
48 Base.show(io::IO, v::CeedVector) = witharray_read(a -> show(io, a), v, MEM_HOST)
50 function Base.length(::Type{T}, v::CeedVector) where {T}
52 C.CeedVectorGetLength(v[], len)
58 Base.axes(v::CeedVector) = (Base.OneTo(length(v)),)
59 Base.size(v::CeedVector) = (length(Int, v),)
60 Base.length(v::CeedVector) = length(Int, v)
63 setvalue!(v::CeedVector, val::Real)
67 setvalue!(v::CeedVector, val::Real) = C.CeedVectorSetValue(v[], val)
69 setindex!(v::CeedVector, val::Real)
70 v[] = val
74 Base.setindex!(v::CeedVector, val::Real) = setvalue!(v, val)
77 norm(v::CeedVector, ntype::NormType)
83 function norm(v::CeedVector, ntype::NormType)
85 C.CeedVectorNorm(v[], ntype, nrm)
90 norm(v::CeedVector, p::Real)
98 function norm(v::CeedVector, p::Real)
106 error("norm(v::CeedVector, p): p must be 1, 2, or Inf")
108 norm(v, ntype)
112 reciprocal!(v::CeedVector)
114 Set `v` to be equal to its elementwise reciprocal.
116 reciprocal!(v::CeedVector) = C.CeedVectorReciprocal(v[])
119 setarray!(v::CeedVector, mtype::MemType, cmode::CopyMode, arr)
129 function setarray!(v::CeedVector, mtype::MemType, cmode::CopyMode, arr)
130 C.CeedVectorSetArray(v[], mtype, cmode, arr)
132 v.arr = arr
137 syncarray!(v::CeedVector, mtype::MemType)
143 syncarray!(v::CeedVector, mtype::MemType) = C.CeedVectorSyncArray(v[], mtype)
146 takearray!(v::CeedVector, mtype::MemType)
152 function takearray!(v::CeedVector, mtype::MemType)
154 C.CeedVectorTakeArray(v[], mtype, ptr)
155 v.arr = nothing
162 error("@witharray must have first argument of the form v_arr=v") # COV_EXCL_LINE
165 v = assignment.args[2]
167 sz = :((length($(esc(v))),))
180 arr, v, sz, mtype, body
184 @witharray(v_arr=v, [size=(dims...)], [mtype=MEM_HOST], body)
186 Executes `body`, having extracted the contents of the [`CeedVector`](@ref) `v` as an array
191 Negate the contents of `CeedVector` `v`:
193 @witharray v_arr=v v_arr .*= -1.0
197 arr, v, sz, mtype, body = witharray_parse(assignment, args)
200 C.CeedVectorGetArray($(esc(v))[], $(esc(mtype)), arr_ref)
205 C.CeedVectorRestoreArray($(esc(v))[], arr_ref)
211 @witharray_read(v_arr=v, [size=(dims...)], [mtype=MEM_HOST], body)
216 arr, v, sz, mtype, body = witharray_parse(assignment, args)
219 C.CeedVectorGetArrayRead($(esc(v))[], $(esc(mtype)), arr_ref)
224 C.CeedVectorRestoreArrayRead($(esc(v))[], arr_ref)
230 setindex!(v::CeedVector, v2::AbstractArray)
231 v[] = v2
233 Sets the values of [`CeedVector`](@ref) `v` equal to those of `v2` using broadcasting.
235 Base.setindex!(v::CeedVector, v2::AbstractArray) = @witharray(a = v, a .= v2)
245 v = CeedVector(c, length(v2); allocate=false)
246 setarray!(v, mtype, cmode, v2)
247 v
251 Vector(v::CeedVector)
253 Create a new `Vector` by copying the contents of `v`.
255 function Base.Vector(v::CeedVector)
256 v2 = Vector{CeedScalar}(undef, length(v))
257 @witharray_read(a = v, v2 .= a)
261 witharray(f, v::CeedVector, mtype=MEM_HOST)
263 Calls `f` with an array containing the data of the `CeedVector` `v`, using [`memory
276 witharray(sum, v)
279 function witharray(f, v::CeedVector, mtype::MemType=MEM_HOST)
281 C.CeedVectorGetArray(v[], mtype, arr_ref)
282 arr = UnsafeArray(arr_ref[], (length(v),))
286 C.CeedVectorRestoreArray(v[], arr_ref)
292 witharray_read(f, v::CeedVector, mtype::MemType=MEM_HOST)
300 witharray_read(display, v)
303 function witharray_read(f, v::CeedVector, mtype::MemType=MEM_HOST)
305 C.CeedVectorGetArrayRead(v[], mtype, arr_ref)
306 arr = UnsafeArray(arr_ref[], (length(v),))
310 C.CeedVectorRestoreArrayRead(v[], arr_ref)
316 scale!(v::CeedVector, a::Real)
318 Overwrite `v` with `a*v` for scalar `a`. Returns `v`.
320 function scale!(v::CeedVector, a::Real)
321 C.CeedVectorScale(v[], a)
322 return v