code: func NewLRN(lrnN uint, lrnAlpha float64, lrnBeta float64, lrnK float64) (retVal *LRN, err error) {
  	var internal C.cudnnLRNDescriptor_t
  	if err := result(C.cudnnCreateLRNDescriptor(&internal)); err != nil {
  		return nil, err
  	}
  
  	if err := result(C.cudnnSetLRNDescriptor(internal, C.uint(lrnN), C.double(lrnAlpha), C.double(lrnBeta), C.double(lrnK))); err != nil {
  		return nil, err
  	}
  
  	retVal = &LRN{
  		internal: internal,
  		lrnN:     lrnN,
  		lrnAlpha: lrnAlpha,
  		lrnBeta:  lrnBeta,
  		lrnK:     lrnK,
  	}
  	runtime.SetFinalizer(retVal, destroyLRN)
  	return retVal, nil
  }
docs: // NewLRN creates a new LRN.