Hadamard product of matrices #
This file defines the Hadamard product Matrix.hadamard
and contains basic properties about them.
Main definition #
Matrix.hadamard: defines the Hadamard product, which is the pointwise product of two matrices of the same size.
Notation #
⊙: the Hadamard productMatrix.hadamard;
References #
Tags #
hadamard product, hadamard
def Matrix.hadamard {α : Type u_1} {m : Type u_2} {n : Type u_3} [Mul α] (A B : Matrix m n α) :
Matrix m n α
Matrix.hadamard (denoted as ⊙ within the Matrix namespace) defines the Hadamard product,
which is the pointwise product of two matrices of the same size.
Instances For
Matrix.hadamard (denoted as ⊙ within the Matrix namespace) defines the Hadamard product,
which is the pointwise product of two matrices of the same size.
Instances For
@[simp]
theorem Matrix.hadamard_zero {α : Type u_1} {m : Type u_2} {n : Type u_3} (A : Matrix m n α) [MulZeroClass α] :
@[simp]
theorem Matrix.zero_hadamard {α : Type u_1} {m : Type u_2} {n : Type u_3} (A : Matrix m n α) [MulZeroClass α] :
theorem Matrix.hadamard_diagonal {α : Type u_1} {n : Type u_3} [DecidableEq n] [MulZeroClass α] (M : Matrix n n α) (w : n → α) :
theorem Matrix.diagonal_hadamard {α : Type u_1} {n : Type u_3} [DecidableEq n] [MulZeroClass α] (M : Matrix n n α) (w : n → α) :
theorem Matrix.diagonal_hadamard_diagonal {α : Type u_1} {n : Type u_3} [DecidableEq n] [MulZeroClass α] (v w : n → α) :
theorem Matrix.diagonal_hadamard_eq_diagonal_iff {α : Type u_1} {n : Type u_3} [DecidableEq n] [MulZeroClass α] {A : Matrix n n α} {d e : n → α} :
theorem Matrix.hadamard_diagonal_eq_diagonal_iff {α : Type u_1} {n : Type u_3} [DecidableEq n] [MulZeroClass α] {A : Matrix n n α} {d e : n → α} :
theorem Matrix.hadamard_one {α : Type u_1} {n : Type u_3} [DecidableEq n] [MulZeroOneClass α] (M : Matrix n n α) :
theorem Matrix.one_hadamard {α : Type u_1} {n : Type u_3} [DecidableEq n] [MulZeroOneClass α] (M : Matrix n n α) :
theorem Matrix.one_hadamard_eq_diagonal_iff {α : Type u_1} {n : Type u_3} [DecidableEq n] [MulZeroOneClass α] {A : Matrix n n α} {d : n → α} :
theorem Matrix.hadamard_one_eq_diagonal_iff {α : Type u_1} {n : Type u_3} [DecidableEq n] [MulZeroOneClass α] {A : Matrix n n α} {d : n → α} :
theorem Matrix.one_hadamard_eq_zero_iff {α : Type u_1} {n : Type u_3} [DecidableEq n] [MulZeroOneClass α] {A : Matrix n n α} :
theorem Matrix.hadamard_one_eq_zero_iff {α : Type u_1} {n : Type u_3} [DecidableEq n] [MulZeroOneClass α] {A : Matrix n n α} :
theorem Matrix.one_hadamard_eq_one_iff {α : Type u_1} {n : Type u_3} [DecidableEq n] [MulZeroOneClass α] {A : Matrix n n α} :
theorem Matrix.hadamard_one_eq_one_iff {α : Type u_1} {n : Type u_3} [DecidableEq n] [MulZeroOneClass α] {A : Matrix n n α} :
@[simp]
theorem Matrix.hadamard_of_one {α : Type u_1} {m : Type u_2} {n : Type u_3} [MulOneClass α] (A : Matrix m n α) :
@[simp]
theorem Matrix.of_one_hadamard {α : Type u_1} {m : Type u_2} {n : Type u_3} [MulOneClass α] (A : Matrix m n α) :
theorem Matrix.single_hadamard_single_eq {α : Type u_1} {m : Type u_2} {n : Type u_3} [DecidableEq m] [DecidableEq n] [MulZeroClass α] (i : m) (j : n) (a b : α) :
theorem Matrix.single_hadamard_single_of_ne {α : Type u_1} {m : Type u_2} {n : Type u_3} [DecidableEq m] [DecidableEq n] [MulZeroClass α] {ia : m} {ja : n} {ib : m} {jb : n} (h : ¬(ia = ib ∧ ja = jb)) (a b : α) :