def value(self, dcode, dextra):
if dcode<<NUM_LIT:16>:<EOL><INDENT>return [(<NUM_LIT:1>,<NUM_LIT:0>),(<NUM_LIT:2>,<NUM_LIT:0>),(<NUM_LIT:3>,<NUM_LIT:0>),(<NUM_LIT:4>,<NUM_LIT:0>),<EOL>(<NUM_LIT:1>,-<NUM_LIT:1>),(<NUM_LIT:1>,+<NUM_LIT:1>),(<NUM_LIT:1>,-<NUM_LIT:2>),(<NUM_LIT:1>,+<NUM_LIT:2>),(<NUM_LIT:1>,-<NUM_LIT:3>),(<NUM_LIT:1>,+<NUM_LIT:3>),<EOL>(<NUM_LIT:2>,-<NUM_LIT:1>),(<NUM_LIT:2>,+<NUM_LIT:1>),(<NUM_LIT:2>,-<NUM_LIT:2>),(<NUM_LIT:2>,+<NUM_LIT:2>),(<NUM_LIT:2>,-<NUM_LIT:3>),(<NUM_LIT:2>,+<NUM_LIT:3>)<EOL>][dcode]<EOL><DEDENT>if dcode<<NUM_LIT:16>+self.NDIRECT:<EOL><INDENT>return (<NUM_LIT:0>,dcode-<NUM_LIT:16>)<EOL><DEDENT>POSTFIX_MASK = (<NUM_LIT:1> << self.NPOSTFIX) - <NUM_LIT:1><EOL>ndistbits = <NUM_LIT:1> + ((dcode - self.NDIRECT - <NUM_LIT:16>) >> (self.NPOSTFIX + <NUM_LIT:1>))<EOL>hcode = (dcode - self.NDIRECT - <NUM_LIT:16>) >> self.NPOSTFIX<EOL>lcode = (dcode - self.NDIRECT - <NUM_LIT:16>) & POSTFIX_MASK<EOL>offset = ((<NUM_LIT:2> + (hcode & <NUM_LIT:1>)) << ndistbits) - <NUM_LIT:4><EOL>distance = ((offset + dextra) << self.NPOSTFIX) + lcode + self.NDIRECT + <NUM_LIT:1><EOL>return (<NUM_LIT:0>,distance)<EOL>
Decode value of symbol together with the extra bits.
        >>> d = DistanceAlphabet('D', NPOSTFIX=2, NDIRECT=10)
        >>> d[34].value(2)
        (0, 35)