I haven't extensively tested it with user defined scalar types, but in theory it should work (I tried registering a ufunc for adding scalar rationals and it seemed to work okay).