hadamard functions