{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "# Day 25 - DFlash Block-Draft Simulator"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {},
      "source": [
        "import numpy as np\n",
        "rng=np.random.default_rng(0)"
      ],
      "outputs": [],
      "execution_count": null
    },
    {
      "cell_type": "code",
      "metadata": {},
      "source": [
        "def ar_cost(K,unit=1.0): return K*unit\n",
        "def block_cost(K,base=1.2,per_token=0.03): return base+per_token*K\n",
        "for K in [4,8,16]: print(K, ar_cost(K), block_cost(K))"
      ],
      "outputs": [],
      "execution_count": null
    },
    {
      "cell_type": "code",
      "metadata": {},
      "source": [
        "def speedup(K,gamma,target=8.0):\n",
        "    expected=(1-gamma**(K+1))/(1-gamma); baseline=target*expected; return baseline/(target+block_cost(K)), baseline/(target+ar_cost(K,0.45))\n",
        "for K in [4,8,16]: print(K, speedup(K,0.82))"
      ],
      "outputs": [],
      "execution_count": null
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "name": "python",
      "pygments_lexer": "ipython3"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 5
}