use complex matrices