# PointwiseMultiplicative

``public protocol PointwiseMultiplicative : AdditiveArithmetic``

A type with values that support pointwise multiplication.

• ``` one ```

The one value.

One is the identity element for multiplication. For any value, `x .* .one == x` and `.one .* x == x`.

#### Declaration

``static var one: Self { get }``
• ``` reciprocal ```

The multiplicative inverse of self.

For any value, `x .* x.reciprocal == .one` and `x.reciprocal .* x == .one`.

#### Declaration

``var reciprocal: Self { get }``
• ``` .*(_:_:) ```

Multiplies two values and produces their product.

#### Declaration

``static func .* (lhs: Self, rhs: Self) -> Self``

#### Parameters

 ``` lhs ``` The first value to multiply. ``` rhs ``` The second value to multiply.
• ``` .*=(_:_:) ``` Default implementation

Multiplies two values and produces their product.

#### Declaration

``static func .*= (lhs: inout Self, rhs: Self)``

#### Parameters

 ``` lhs ``` The first value to multiply. ``` rhs ``` The second value to multiply.
• ``` ./(_:_:) ``` Extension method

#### Declaration

``public static func ./ (lhs: Self, rhs: Self) -> Self``
• ``` ./=(_:_:) ``` Extension method

#### Declaration

``public static func ./= (lhs: inout Self, rhs: Self)``
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }]
[{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }]