What is the difference between pre randomization and post randomization methods?

When you call the randomize() method on a SV class, then the following methods are called in order:

pre_randomize()
randomize()
post_randomize()

A user can overload the pre_randomize() and post_randomize() methods but not the randomize() method. The pre-randomize() method is used to set up variables that are used in constraints during the randomize() method. The post-randomize() method is used to calculate values based on the results of the randomize() method.