A quantum computer simulator