-
Notifications
You must be signed in to change notification settings - Fork 63
/
DirectSum.jl
23 lines (20 loc) · 921 Bytes
/
DirectSum.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
###############################################################################
#
# DirectSumModule.jl : Direct sums of modules
#
###############################################################################
###############################################################################
#
# DirectSum constructor
#
###############################################################################
@doc raw"""
direct_sum(m::Vector{<:FPModule{T}}) where T <: RingElement
direct_sum(vals::FPModule{T}...) where T <: RingElement
Return a tuple $M, f, g$ consisting of $M$ the direct sum of the modules `m`
(supplied as a vector of modules), a vector $f$ of the injections
of the $m[i]$ into $M$ and a vector $g$ of the projections from
$M$ onto the $m[i]$.
"""
direct_sum(m::Vector{<:FPModule{<:RingElement}}) = Generic.direct_sum(m)
direct_sum(m::FPModule{<:RingElement}...) = Generic.direct_sum([m...])