Пример #1
0
def _calciumTablets():
    res = []

    # source: online shop
    res += [makeProduct(
        name = 'calcium dietary supplement "caltrate"',
        nameShort = 'Ca1',
        price = 1493,
        priceMass = 150, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                calcium = (600, 'mg')
        )))]

    # source: online shop
    res += [makeProduct(
        name = 'ultra calcium with vitamin d3 "vitacost"',
        nameShort = 'Ca2',
        dataUrl = 'http://www.vitacost.com/vitacost-ultra-calcium-1200-mg-with-vitamin-d3-700-iu-per-serving-300-softgels-7',
        price = 1149,
        priceMass = 150, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                energy = (10, 'kcal'),
                fat = (1, 'g'),
                calcium = (1200, 'mg')
        )))]

    return res
Пример #2
0
def _distilledWater():
    return [makeProduct(
        name = 'distilled water',
        nameShort = 'water',
        price = 0,
        priceMass = 100,
        **_convert(
            elementsMass = (100, 'g'),
            elements = makeElements(
                water = (100, 'g')
        )))]
Пример #3
0
def _ironTablets():
    # source: online shop
    return [makeProduct(
        name = 'iron tablets "nature made"',
        price = 674,
        priceMass = 180, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                iron = (65, 'mg')
        )))]
Пример #4
0
def _copperTablets():
    # source: online shop
    return [makeProduct(
        name = 'copper tablets "twinlab"',
        price = 621,
        priceMass = 100, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                copper = (2, 'mg')
        )))]
Пример #5
0
def _seleniumTablets():
    # source: online shop
    return [makeProduct(
        name = 'hypo-selenium tablets "douglas laboratories"',
        price = 1160,
        priceMass = 90, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                selenium = (200, 'mcg')
        )))]
Пример #6
0
def _vitaminB6Tablets():
    # source: online shop
    return [makeProduct(
        name = 'vitamin b-6 "nature\'s way"',
        price = 639,
        priceMass = 100, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                carb = (1, 'g'),
                vitaminB6 = (100, 'mg')
        )))]
Пример #7
0
def _vitaminDTablets():
    # source: online shop
    return [makeProduct(
        name = 'vitamin d "vitacost"',
        nameShort = 'vit d',
        dataUrl = 'http://www.vitacost.com/vitacost-vitamin-d3-as-cholecalciferol-1000-iu-200-capsules-1',
        price = 599,
        priceMass = 200, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                vitaminD = (1000, 'IU_vitaminD')
        )))]
Пример #8
0
def _vitaminB12Tablets():
    # source: online shop
    return [makeProduct(
        name = 'vitamin b-12 tablets "solgar"',
        nameShort = 'vit b12',
        dataUrl = 'http://www.vitacost.com/solgar-vitamin-b12-100-mcg-100-tablets',
        price = 559,
        priceMass = 100, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                vitaminB12 = (100, 'mcg')
        )))]
Пример #9
0
def _potassiumPowder():
    # source: http://www.iherb.com/Now-Foods-Potassium-Chloride-Powder-8-oz-227-g/777
    return [makeProduct(
        name = 'potassium chloride powder "bulk supplements"',
        nameShort = 'K',
        dataUrl = 'http://www.amazon.com/BulkSupplements-Potassium-Chloride-Powder-grams/dp/B00ENS39WG',
        price = 1996,
        **_convert(
            priceMass = (1000, 'g'),
            elementsMass = (1.4, 'g'),
            elements = makeElements(
                potassium = (730, 'mg')
        )))]
Пример #10
0
def _molybdenumTablets():
    # source: online shop
    return [makeProduct(
        name = 'molybdenum tablets "kal"',
        nameShort = 'Mo',
        dataUrl = 'http://www.vitacost.com/kal-molybdenum-chelated-250-mcg-100-microtablets',
        price = 499,
        priceMass = 100, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                molybdenum = (250, 'mcg')
        )))]
Пример #11
0
def _biotinTablets():
    # source: online shop
    return [makeProduct(
        name = 'biotin "source naturals"',
        nameShort = 'biotin',
        dataUrl = 'http://www.vitacost.com/source-naturals-biotin-600-mcg-200-tablets',
        price = 709,
        priceMass = 200, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                biotin = (600, 'mcg')
        )))]
Пример #12
0
def _iodineTablets():
    # source: online shop
    return [makeProduct(
        name = 'kelp tablets "nature\'s way"',
        nameShort = 'I',
        dataUrl = 'http://www.vitacost.com/natures-way-kelp',
        price = 569,
        priceMass = 180, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                iodine = (400, 'mcg')
        )))]
Пример #13
0
def _chromiumTablets():
    # source: online shop
    return [makeProduct(
        name = 'chromium picolinate tablets "vitacost"',
        nameShort = 'Cr',
        dataUrl = 'http://www.vitacost.com/vitacost-chromium-picolinate',
        price = 939,
        priceMass = 300, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                chromium = (200, 'mcg')
        )))]
Пример #14
0
def _cholineTablets():
    # source: online shop
    return [makeProduct(
        name = 'choline tablets "nature\'s way"',
        nameShort = 'choline',
        dataUrl = 'http://www.vitacost.com/natures-way-choline',
        price = 639,
        priceMass = 100, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                choline = (500, 'mg')
        )))]
Пример #15
0
def _zincTablets():
    # source: online shop
    return [makeProduct(
        name = 'zinc tablets "vitacost"',
        nameShort = 'Zn',
        dataUrl = 'http://www.vitacost.com/vitacost-l-optizinc',
        price = 899,
        priceMass = 200, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                zinc = (30, 'mg')
        )))]
Пример #16
0
def _riboflavinTablets():
    # source: online shop
    return [makeProduct(
        name = 'vitamin b-2 "solgar"',
        nameShort = 'vit b2',
        dataUrl = 'http://www.vitacost.com/solgar-vitamin-b2-riboflavin-50-mg-100-tablets',
        price = 719,
        priceMass = 100, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                riboflavin = (50, 'mg')
        )))]
Пример #17
0
def _potassiumTablets():
    # source: online shop
    return [makeProduct(
        name = 'potassium citrate "vitacost"',
        nameShort = 'K2',
        dataUrl = 'http://www.vitacost.com/vitacost-potassium-citrate',
        price = 699,
        priceMass = 300, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                potassium = (99, 'mg')
        )))]
Пример #18
0
def _vitaminCTablets():
    # source: online shop
    return [makeProduct(
        name = 'vitamin c tablets "vitacost"',
        nameShort = 'vit c',
        dataUrl = 'http://www.vitacost.com/vitacost-vitamin-c-1000-mg-250-capsules',
        price = 1176,
        priceMass = 250, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                vitaminC = (1000, 'mg')
        )))]
Пример #19
0
def _magnesiumTablets():
    # source: online shop
    return [makeProduct(
        name = 'magnesium tablets "vitacost"',
        nameShort = 'Mg',
        dataUrl = 'http://www.vitacost.com/vitacost-magnesium-400-mg-200-capsules-1',
        price = 649,
        priceMass = 200, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                magnesium = (400, 'mg'),
                magnesiumSup = (400, 'mg')
        )))]
Пример #20
0
def _floricalTablets():
    # source: online shop
    return [makeProduct(
        name = 'florical tablets "mericon"',
        nameShort = 'F',
        dataUrl = 'http://www.amazon.com/Florical-Calcium-Fluoride-supplements-Industries/dp/B000M4C5TS',
        price = 1359,
        priceMass = 100, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                calcium = (145, 'mg'),
                fluoride = (3.75, 'mg')
        )))]
Пример #21
0
def _vitaminETablets():
    # source: online shop
    return [makeProduct(
        name = 'vitamin e "vitacost"',
        nameShort = 'vit e',
        dataUrl = 'http://www.vitacost.com/vitacost-gamma-e-tocopherol-complex-200-iu-60-softgels',
        price = 899,
        priceMass = 60, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                vitaminE = (200, 'IU_vitaminE_d_alphatocopherol'),
                vitaminESup = (200, 'IU_vitaminE_d_alphatocopherol')
        )))]
Пример #22
0
def _vitaminKTablets():
    # source: online shop
    return [makeProduct(
        name = 'vitamin k tablets "vitacost"',
        nameShort = 'vit k',
        dataUrl = 'http://www.vitacost.com/vitacost-vitamin-k-complex-with-k1-k2-400-mcg-180-softgels',
        price = 2499,
        priceMass = 180, # tablets
        elementsMass = 1,
        **_convert(
            elements = makeElements(
                vitaminK = (400, 'mcg'),
                vitaminC = (10, 'mg')
        )))]
Пример #23
0
def _optiMen():
    # source: package
    return [makeProduct(
        name = 'vitamins opti-men "optimum nutrition"',
        price = 2149,
        priceMass = 180,
        **_convert(
            elementsMass = (3, 'g'), # 3 tablets
            elements = makeElements(
                calcium = (200, 'mg'),
                vitaminA = (10000, 'IU_vitaminA_betacarotine_sup'),
                vitaminC = (300, 'mg'),
                vitaminD = (300, 'IU_vitaminD'),
                vitaminE = (200, 'IU_vitaminE_d_alphatocopherol'),
                vitaminESup = (200, 'IU_vitaminE_d_alphatocopherol'),
                vitaminK = (75, 'mcg'),
                thiamin = (75, 'mg'),
                riboflavin = (75, 'mg'),
                niacin = (75, 'mg'),
                niacinSup = (75, 'mg'),
                vitaminB6 = (50, 'mg'),
                folate = (600, 'mcg_folicAcid'),
                folateSup = (600, 'mcg_folicAcid'),
                vitaminB12 = (100, 'mcg'),
                pantothenicAcid = (75, 'mg'),
                biotin = (300, 'mcg'),
                choline = (10, 'mg'),
                chromium = (120, 'mcg'),
                copper = (2, 'mg'),
                iodine = (150, 'mcg'),
                magnesium = (100, 'mg'),
                magnesiumSup = (100, 'mg'),
                manganese = (5, 'mg'),
                molybdenum = (80, 'mcg'),
                selenium = (200, 'mcg'),
                zinc = (30, 'mg'),
                boron = (2, 'mg'),
                silicon = (5, 'mg'),
                vanadium = (100, 'mcg')
        )))]
Пример #24
0
def elementsPriority():
    return dict([(k, 1) for k in makeElements().keys()])
Пример #25
0
def goal():
    mass = 89.0 # kg

    # There's no need to track what is referenced in DRI tables as "chloride".
    # It means only chloride part of NaCl, therefore it's tracked implicitly
    # by tracking sodium.
    # (Dietary Reference Intakes for Water, Potassium, Sodium, Chloride, and Sulfate)

    # Dietary Reference Intake Tables (USDA)
    waterPerDay = 3.7 # kg (AI)
    sodiumPerDay = 1500.0 # mg (AI)
    sodiumMaxPerDay = 2300.0 # mg
    potassiumPerDay = 4700.0 # mg (AI)
    fiberPerDay = 38.0 # g (AI)
    sugarMaxEnergyPercent = 25.0 # %
    ironMaxPerDay = 45.0 # mg
    calciumPerDay = 1000.0 # mg (RDA)
    calciumMaxPerDay = 2500.0 # mg
    vitaminAPerDay = 900.0 # RAE (RDA)
    retinolMaxPerDay = 3000.0 # mcg
    vitaminCPerDay = 90.0 # mg (RDA)
    vitaminCMaxPerDay = 2000.0 # mg
    vitaminDPerDay = 15.0 # mcg (RDA)
    vitaminDMaxPerDay = 100.0 # mcg
    vitaminEPerDay = 15.0 # mg (RDA)
    vitaminESupMaxPerDay = 1000.0 # mg
    vitaminKPerDay = 120.0 # mcg (AI)
    thiaminPerDay = 1.2 # mg (RDA)
    riboflavinPerDay = 1.3 # mg (RDA)
    niacinPerDay = 16.0 # mg (RDA)
    niacinSupMaxPerDay = 35.0 # mg
    vitaminB6PerDay = 1.3 # mg (RDA)
    vitaminB6MaxPerDay = 100.0 # mg
    folatePerDay = 400.0 # DFE (RDA)
    folateSupMaxPerDay = 1000.0 # DFE
    vitaminB12PerDay = 2.4 # mcg (RDA)
    pantothenicAcidPerDay = 5.0 # mg (AI)
    biotinPerDay = 30.0 # mcg (AI)
    cholinePerDay = 550.0 # mg (AI)
    cholineMaxPerDay = 3500.0 # mg
    chromiumPerDay = 35.0 # mcg (AI)
    copperPerDay = 900.0 # mcg (RDA)
    copperMaxPerDay = 10000.0 # mcg
    fluoridePerDay = 4.0 # mg (AI)
    fluorideMaxPerDay = 10.0 # mg
    iodinePerDay = 150.0 # mcg (RDA)
    iodineMaxPerDay = 1100.0 # mcg
    magnesiumPerDay = 420.0 # mg (RDA)
    magnesiumSupMaxPerDay = 350.0 # mg
    manganesePerDay = 2.3 # mg (AI)
    manganeseMaxPerDay = 11.0 # mg
    molybdenumPerDay = 45.0 # mcg (RDA)
    molybdenumMaxPerDay = 2000.0 # mcg
    phosphorusPerDay = 700.0 # mg (RDA)
    phosphorusMaxPerDay = 4000.0 # mg
    seleniumPerDay = 55.0 # mcg (RDA)
    seleniumMaxPerDay = 400.0 # mcg
    zincPerDay = 11.0 # mg (RDA)
    zincMaxPerDay = 40.0 # mg
    boronMaxPerDay = 20.0 # mg
    nickelMaxPerDay = 1.0 # mg
    siliconMaxPerDay = 0
    vanadiumMaxPerDay = 1.8 # mg

    # Treating High Level Cholesterol (National Heart, Lung and Blood Institute)
    fatSatMaxEnergyPercent = 7.0 # %
    cholMaxPerDay = 200.0 # mg

    # Google
    fatEnergyPerGram = 9.0 # kcal
    carbEnergyPerGram = 4.0 # kcal

    # The Complete Guide to Food for Sports Performance (Burke, Cox)
    # pick products with low (GI < 55)-to-moderate (55 < GI < 70) sugar range
    # use www.glycemicindex.com to find product GI
    fatEnergyPercent = 25.0 # %
    carbScaleLow = 3.0 # g*kg-1 light training program
    carbScaleMed = 7.0 # g*kg-1 moderate excercise program
    proteinScale = 1.6 # g*kg-1 resistance training, weight gain
    ironPerDay = 17.5 # mg
    bmr = 8.4 / 0.0042 # kcal (for 88 kg body mass, 30 years old)
    activity = 1.4 # sedatory lifestyle

    energyRateBig = 0.236 # kcal*kg-1*min-1 (in a 30 seconds) Energy Cost of Resistance Exercises: an Update (Reis, Junior, Zajac, Oliveira)
    energyRateMed = 0.101 # kcal*kg-1*min-1 Energy Cost of Moderate-Duration Resistance and Aerobic Excercise (Bloomer)
    energyRateLow = 0.06 # kcal*kg-1*min-1 (pull-ups, push-ups, curl-ups, lunges) Energy Expenditure of Resistance Training Activities in Young Men (Vezina)

    # my data
    # each set ~= 1 min
    timeWarmup = 5.0 # min
    timeDeadLift = 4.0 # min
    timeBenchPress = 4.0 # min
    timeBentOverRow = 3.0 # min
    timeBenchPressCloseGrip = 3.0 # min
    timeCurl = 2.0 # min
    timePinch = 5.0 # min
    timeCrunches = 3.0 # min
    timeBig = timeDeadLift + timeBenchPress # min
    timeMed = timeBentOverRow + timeBenchPressCloseGrip # min
    timeLow = timeCurl + timePinch + timeCrunches + timeWarmup # min
    timeTotal = timeLow + timeMed + timeBig # min
    timeReal = 120.0 # min
    timeScale = timeReal / timeTotal
    energyScale = timeBig*energyRateBig + timeMed*energyRateMed + timeLow*energyRateLow # kcal*kg-1
    energyScale *= timeScale
    energyWorkout = energyScale * mass # kcal

    daysPerWeek = 7.0
    workoutsPerWeek = 1.0
    energyPerDay = (bmr*activity*daysPerWeek + energyWorkout*workoutsPerWeek) / daysPerWeek # kcal
    carbPerDay = mass * (carbScaleLow*(daysPerWeek - workoutsPerWeek) + carbScaleMed*workoutsPerWeek) / daysPerWeek # g
    proteinPerDay = mass * proteinScale # g
    fatPerDay = energyPerDay*fatEnergyPercent / (100.0 * fatEnergyPerGram)
    fatSatMaxPerDay = energyPerDay*fatSatMaxEnergyPercent / (100.0 * fatEnergyPerGram)
    sugarMaxPerDay = energyPerDay*sugarMaxEnergyPercent / (100.0 * carbEnergyPerGram)

    def relaxed(v):
        return [v*0.99, v*1.01]

    def unbound(v):
        return [v, v*100.0]

    def upper(v):
        return [0, max(v, 0.1)]

    return makeConverter().convertDict(makeElements(
        energy = (relaxed(energyPerDay), 'kcal'),
        water = (relaxed(waterPerDay), 'kg'),
        protein = (relaxed(proteinPerDay), 'g'),
        fat = (relaxed(fatPerDay), 'g'),
        fatSat = (upper(fatSatMaxPerDay), 'g'),
        carb = ([carbPerDay, carbPerDay*1.5], 'g'), # increased to meet energy needs
        sugar = (upper(sugarMaxPerDay), 'g'),
        sodium = ([sodiumPerDay, sodiumMaxPerDay], 'mg'),
        chol = (upper(cholMaxPerDay), 'mg'),
        fiber = (relaxed(fiberPerDay), 'g'),
        potassium = (unbound(potassiumPerDay), 'mg'),
        iron = ([ironPerDay, ironMaxPerDay], 'mg'),
        calcium = ([calciumPerDay, calciumMaxPerDay], 'mg'),
        vitaminA = (unbound(vitaminAPerDay), 'RAE'),
        retinol = (upper(retinolMaxPerDay), 'mcg'),
        vitaminC = ([vitaminCPerDay, vitaminCMaxPerDay], 'mg'),
        vitaminD = ([vitaminDPerDay, vitaminDMaxPerDay], 'mcg'),
        vitaminE = (unbound(vitaminEPerDay), 'mg'),
        vitaminESup = (upper(vitaminESupMaxPerDay), 'mg'),
        vitaminK = (relaxed(vitaminKPerDay), 'mcg'),
        thiamin = (relaxed(thiaminPerDay), 'mg'),
        riboflavin = (relaxed(riboflavinPerDay), 'mg'),
        niacin = (unbound(niacinPerDay), 'mg'),
        niacinSup = (upper(niacinSupMaxPerDay), 'mg'),
        vitaminB6 = ([vitaminB6PerDay, vitaminB6MaxPerDay], 'mg'),
        folate = (unbound(folatePerDay), 'DFE'),
        folateSup = (upper(folateSupMaxPerDay), 'DFE'),
        vitaminB12 = (relaxed(vitaminB12PerDay), 'mcg'),
        pantothenicAcid = (relaxed(pantothenicAcidPerDay), 'mg'),
        biotin = (relaxed(biotinPerDay), 'mcg'),
        choline = ([cholinePerDay, cholineMaxPerDay], 'mg'),
        chromium = (relaxed(chromiumPerDay), 'mcg'),
        copper = ([copperPerDay, copperMaxPerDay], 'mcg'),
        fluoride = ([fluoridePerDay, fluorideMaxPerDay], 'mg'),
        iodine = ([iodinePerDay, iodineMaxPerDay], 'mcg'),
        magnesium = (unbound(magnesiumPerDay), 'mg'),
        magnesiumSup = (upper(magnesiumSupMaxPerDay), 'mg'),
        manganese = ([manganesePerDay, manganeseMaxPerDay], 'mg'),
        molybdenum = ([molybdenumPerDay, molybdenumMaxPerDay], 'mcg'),
        phosphorus = ([phosphorusPerDay, phosphorusMaxPerDay], 'mg'),
        selenium = ([seleniumPerDay, seleniumMaxPerDay], 'mcg'),
        zinc = ([zincPerDay, zincMaxPerDay], 'mg'),
        boron = (upper(boronMaxPerDay), 'mg'),
        nickel = (upper(nickelMaxPerDay), 'mg'),
        silicon = (upper(siliconMaxPerDay), 'mg'),
        vanadium = (upper(vanadiumMaxPerDay), 'mg')
    ), makeProductUnits()['elements'])
Пример #26
0
def goal():
    mass = 89.0  # kg

    # There's no need to track what is referenced in DRI tables as "chloride".
    # It means only chloride part of NaCl, therefore it's tracked implicitly
    # by tracking sodium.
    # (Dietary Reference Intakes for Water, Potassium, Sodium, Chloride, and Sulfate)

    # Dietary Reference Intake Tables (USDA)
    waterPerDay = 3.7  # kg (AI)
    sodiumPerDay = 1500.0  # mg (AI)
    sodiumMaxPerDay = 2300.0  # mg
    potassiumPerDay = 4700.0  # mg (AI)
    fiberPerDay = 38.0  # g (AI)
    sugarMaxEnergyPercent = 25.0  # %
    ironMaxPerDay = 45.0  # mg
    calciumPerDay = 1000.0  # mg (RDA)
    calciumMaxPerDay = 2500.0  # mg
    vitaminAPerDay = 900.0  # RAE (RDA)
    retinolMaxPerDay = 3000.0  # mcg
    vitaminCPerDay = 90.0  # mg (RDA)
    vitaminCMaxPerDay = 2000.0  # mg
    vitaminDPerDay = 15.0  # mcg (RDA)
    vitaminDMaxPerDay = 100.0  # mcg
    vitaminEPerDay = 15.0  # mg (RDA)
    vitaminESupMaxPerDay = 1000.0  # mg
    vitaminKPerDay = 120.0  # mcg (AI)
    thiaminPerDay = 1.2  # mg (RDA)
    riboflavinPerDay = 1.3  # mg (RDA)
    niacinPerDay = 16.0  # mg (RDA)
    niacinSupMaxPerDay = 35.0  # mg
    vitaminB6PerDay = 1.3  # mg (RDA)
    vitaminB6MaxPerDay = 100.0  # mg
    folatePerDay = 400.0  # DFE (RDA)
    folateSupMaxPerDay = 1000.0  # DFE
    vitaminB12PerDay = 2.4  # mcg (RDA)
    pantothenicAcidPerDay = 5.0  # mg (AI)
    biotinPerDay = 30.0  # mcg (AI)
    cholinePerDay = 550.0  # mg (AI)
    cholineMaxPerDay = 3500.0  # mg
    chromiumPerDay = 35.0  # mcg (AI)
    copperPerDay = 900.0  # mcg (RDA)
    copperMaxPerDay = 10000.0  # mcg
    fluoridePerDay = 4.0  # mg (AI)
    fluorideMaxPerDay = 10.0  # mg
    iodinePerDay = 150.0  # mcg (RDA)
    iodineMaxPerDay = 1100.0  # mcg
    magnesiumPerDay = 420.0  # mg (RDA)
    magnesiumSupMaxPerDay = 350.0  # mg
    manganesePerDay = 2.3  # mg (AI)
    manganeseMaxPerDay = 11.0  # mg
    molybdenumPerDay = 45.0  # mcg (RDA)
    molybdenumMaxPerDay = 2000.0  # mcg
    phosphorusPerDay = 700.0  # mg (RDA)
    phosphorusMaxPerDay = 4000.0  # mg
    seleniumPerDay = 55.0  # mcg (RDA)
    seleniumMaxPerDay = 400.0  # mcg
    zincPerDay = 11.0  # mg (RDA)
    zincMaxPerDay = 40.0  # mg
    boronMaxPerDay = 20.0  # mg
    nickelMaxPerDay = 1.0  # mg
    siliconMaxPerDay = 0
    vanadiumMaxPerDay = 1.8  # mg

    # Treating High Level Cholesterol (National Heart, Lung and Blood Institute)
    fatSatMaxEnergyPercent = 7.0  # %
    cholMaxPerDay = 200.0  # mg

    # Google
    fatEnergyPerGram = 9.0  # kcal
    carbEnergyPerGram = 4.0  # kcal

    # The Complete Guide to Food for Sports Performance (Burke, Cox)
    # pick products with low (GI < 55)-to-moderate (55 < GI < 70) sugar range
    # use www.glycemicindex.com to find product GI
    fatEnergyPercent = 25.0  # %
    carbScaleLow = 3.0  # g*kg-1 light training program
    carbScaleMed = 7.0  # g*kg-1 moderate excercise program
    proteinScale = 1.6  # g*kg-1 resistance training, weight gain
    ironPerDay = 17.5  # mg
    bmr = 8.4 / 0.0042  # kcal (for 88 kg body mass, 30 years old)
    activity = 1.4  # sedatory lifestyle

    energyRateBig = 0.236  # kcal*kg-1*min-1 (in a 30 seconds) Energy Cost of Resistance Exercises: an Update (Reis, Junior, Zajac, Oliveira)
    energyRateMed = 0.101  # kcal*kg-1*min-1 Energy Cost of Moderate-Duration Resistance and Aerobic Excercise (Bloomer)
    energyRateLow = 0.06  # kcal*kg-1*min-1 (pull-ups, push-ups, curl-ups, lunges) Energy Expenditure of Resistance Training Activities in Young Men (Vezina)

    # my data
    # each set ~= 1 min
    timeWarmup = 5.0  # min
    timeDeadLift = 4.0  # min
    timeBenchPress = 4.0  # min
    timeBentOverRow = 3.0  # min
    timeBenchPressCloseGrip = 3.0  # min
    timeCurl = 2.0  # min
    timePinch = 5.0  # min
    timeCrunches = 3.0  # min
    timeBig = timeDeadLift + timeBenchPress  # min
    timeMed = timeBentOverRow + timeBenchPressCloseGrip  # min
    timeLow = timeCurl + timePinch + timeCrunches + timeWarmup  # min
    timeTotal = timeLow + timeMed + timeBig  # min
    timeReal = 120.0  # min
    timeScale = timeReal / timeTotal
    energyScale = timeBig * energyRateBig + timeMed * energyRateMed + timeLow * energyRateLow  # kcal*kg-1
    energyScale *= timeScale
    energyWorkout = energyScale * mass  # kcal

    daysPerWeek = 7.0
    workoutsPerWeek = 1.0
    energyPerDay = (bmr * activity * daysPerWeek +
                    energyWorkout * workoutsPerWeek) / daysPerWeek  # kcal
    carbPerDay = mass * (carbScaleLow * (daysPerWeek - workoutsPerWeek) +
                         carbScaleMed * workoutsPerWeek) / daysPerWeek  # g
    proteinPerDay = mass * proteinScale  # g
    fatPerDay = energyPerDay * fatEnergyPercent / (100.0 * fatEnergyPerGram)
    fatSatMaxPerDay = energyPerDay * fatSatMaxEnergyPercent / (
        100.0 * fatEnergyPerGram)
    sugarMaxPerDay = energyPerDay * sugarMaxEnergyPercent / (100.0 *
                                                             carbEnergyPerGram)

    def relaxed(v):
        return [v * 0.99, v * 1.01]

    def unbound(v):
        return [v, v * 100.0]

    def upper(v):
        return [0, max(v, 0.1)]

    return makeConverter().convertDict(
        makeElements(
            energy=(relaxed(energyPerDay), 'kcal'),
            water=(relaxed(waterPerDay), 'kg'),
            protein=(relaxed(proteinPerDay), 'g'),
            fat=(relaxed(fatPerDay), 'g'),
            fatSat=(upper(fatSatMaxPerDay), 'g'),
            carb=([carbPerDay,
                   carbPerDay * 1.5], 'g'),  # increased to meet energy needs
            sugar=(upper(sugarMaxPerDay), 'g'),
            sodium=([sodiumPerDay, sodiumMaxPerDay], 'mg'),
            chol=(upper(cholMaxPerDay), 'mg'),
            fiber=(relaxed(fiberPerDay), 'g'),
            potassium=(unbound(potassiumPerDay), 'mg'),
            iron=([ironPerDay, ironMaxPerDay], 'mg'),
            calcium=([calciumPerDay, calciumMaxPerDay], 'mg'),
            vitaminA=(unbound(vitaminAPerDay), 'RAE'),
            retinol=(upper(retinolMaxPerDay), 'mcg'),
            vitaminC=([vitaminCPerDay, vitaminCMaxPerDay], 'mg'),
            vitaminD=([vitaminDPerDay, vitaminDMaxPerDay], 'mcg'),
            vitaminE=(unbound(vitaminEPerDay), 'mg'),
            vitaminESup=(upper(vitaminESupMaxPerDay), 'mg'),
            vitaminK=(relaxed(vitaminKPerDay), 'mcg'),
            thiamin=(relaxed(thiaminPerDay), 'mg'),
            riboflavin=(relaxed(riboflavinPerDay), 'mg'),
            niacin=(unbound(niacinPerDay), 'mg'),
            niacinSup=(upper(niacinSupMaxPerDay), 'mg'),
            vitaminB6=([vitaminB6PerDay, vitaminB6MaxPerDay], 'mg'),
            folate=(unbound(folatePerDay), 'DFE'),
            folateSup=(upper(folateSupMaxPerDay), 'DFE'),
            vitaminB12=(relaxed(vitaminB12PerDay), 'mcg'),
            pantothenicAcid=(relaxed(pantothenicAcidPerDay), 'mg'),
            biotin=(relaxed(biotinPerDay), 'mcg'),
            choline=([cholinePerDay, cholineMaxPerDay], 'mg'),
            chromium=(relaxed(chromiumPerDay), 'mcg'),
            copper=([copperPerDay, copperMaxPerDay], 'mcg'),
            fluoride=([fluoridePerDay, fluorideMaxPerDay], 'mg'),
            iodine=([iodinePerDay, iodineMaxPerDay], 'mcg'),
            magnesium=(unbound(magnesiumPerDay), 'mg'),
            magnesiumSup=(upper(magnesiumSupMaxPerDay), 'mg'),
            manganese=([manganesePerDay, manganeseMaxPerDay], 'mg'),
            molybdenum=([molybdenumPerDay, molybdenumMaxPerDay], 'mcg'),
            phosphorus=([phosphorusPerDay, phosphorusMaxPerDay], 'mg'),
            selenium=([seleniumPerDay, seleniumMaxPerDay], 'mcg'),
            zinc=([zincPerDay, zincMaxPerDay], 'mg'),
            boron=(upper(boronMaxPerDay), 'mg'),
            nickel=(upper(nickelMaxPerDay), 'mg'),
            silicon=(upper(siliconMaxPerDay), 'mg'),
            vanadium=(upper(vanadiumMaxPerDay), 'mg')),
        makeProductUnits()['elements'])
Пример #27
0
def elementsPriority():
    return dict([(k, 1) for k in makeElements().keys()])