override def sumOption()

in algebird-core/src/main/scala/com/twitter/algebird/GeneratedProductAlgebra.scala [4471:4533]


  override def sumOption(to: TraversableOnce[X]): Option[X] =
    if (to.isEmpty) None
    else {
      val bufA = fromSumOption[A](1000)
      val bufB = fromSumOption[B](1000)
      val bufC = fromSumOption[C](1000)
      val bufD = fromSumOption[D](1000)
      val bufE = fromSumOption[E](1000)
      val bufF = fromSumOption[F](1000)
      val bufG = fromSumOption[G](1000)
      val bufH = fromSumOption[H](1000)
      val bufI = fromSumOption[I](1000)
      val bufJ = fromSumOption[J](1000)
      val bufK = fromSumOption[K](1000)
      val bufL = fromSumOption[L](1000)
      val bufM = fromSumOption[M](1000)
      val bufN = fromSumOption[N](1000)
      val bufO = fromSumOption[O](1000)
      val bufP = fromSumOption[P](1000)
      val bufQ = fromSumOption[Q](1000)
      val bufR = fromSumOption[R](1000)
      val bufS = fromSumOption[S](1000)
      val bufT = fromSumOption[T](1000)
      val bufU = fromSumOption[U](1000)
      val bufV = fromSumOption[V](1000)
      to.foreach { x =>
        val tuple = unapply(x).get
        bufA.put(tuple._1); bufB.put(tuple._2); bufC.put(tuple._3);
        bufD.put(tuple._4); bufE.put(tuple._5); bufF.put(tuple._6);
        bufG.put(tuple._7); bufH.put(tuple._8); bufI.put(tuple._9);
        bufJ.put(tuple._10); bufK.put(tuple._11); bufL.put(tuple._12);
        bufM.put(tuple._13); bufN.put(tuple._14); bufO.put(tuple._15);
        bufP.put(tuple._16); bufQ.put(tuple._17); bufR.put(tuple._18);
        bufS.put(tuple._19); bufT.put(tuple._20); bufU.put(tuple._21);
        bufV.put(tuple._22)
      }
      Some(
        apply(
          bufA.flush.get,
          bufB.flush.get,
          bufC.flush.get,
          bufD.flush.get,
          bufE.flush.get,
          bufF.flush.get,
          bufG.flush.get,
          bufH.flush.get,
          bufI.flush.get,
          bufJ.flush.get,
          bufK.flush.get,
          bufL.flush.get,
          bufM.flush.get,
          bufN.flush.get,
          bufO.flush.get,
          bufP.flush.get,
          bufQ.flush.get,
          bufR.flush.get,
          bufS.flush.get,
          bufT.flush.get,
          bufU.flush.get,
          bufV.flush.get
        )
      )
    }