<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def calloc(self, sim_nmemb, sim_size):
 """ A somewhat faithful implementation of libc `calloc`. :param sim_nmemb: the number of elements to allocated :param sim_size: the size of each element (in bytes) :returns: the address of the allocation, or a NULL pointer if the allocation failed """

        raise NotImplementedError("%s not implemented for %s" % (self.calloc.__func__.__name__,
                                                                 self.__class__.__name__))