text:
## co oxidation number

January 9th, 2021 | Tags:

Oxidation involves an increase in oxidation state. Answer Save. [citation needed] Other important factors were the 2002 Mining Code, which encouraged investment by foreign and transnational corporations such as Glencore, and the end of the First and Second Congo Wars. The above image shows the [Co (NH 3) 6] Cl3 complex.The coordination number of Cobalt is 6 because there are six ligands of ammonia bonded to cobalt atom. In H₂SO₃, the oxidation number of S is +4. [127][128], Nuclear weapon designs could intentionally incorporate 59Co, some of which would be activated in a nuclear explosion to produce 60Co. What is the oxidation state of Mg and Br in magnesium bromide, MgBr 2? [61][62] It can also be used to make rechargeable batteries, and the advent of electric vehicles and their success with consumers probably has a great deal to do with the DRC's soaring production. Co in LiCoO2 - Li is in the first column (group) on the periodic table, so it has a +1 charge. Vom Bürger Thenard", "Ciudad Juarez orphaned source dispersal, 1983", "Field portable XRF analysis of environmental samples", Australian Academy of Science > Deceased Fellows > Hedley Ralph Marston 1900–1965, "Cobalt : its use to control wasting disease", "Nickel, chromium and cobalt in consumer products: revisiting safe levels in the new millennium", "Role of cobalt, iron, lead, manganese, mercury, platinum, selenium, and titanium in carcinogenesis", Centers for Disease and Prevention – Cobalt, https://en.wikipedia.org/w/index.php?title=Cobalt&oldid=999134897, Biology and pharmacology of chemical elements, Extractive Industries Transparency Initiative, Short description is different from Wikidata, Articles with unsourced statements from January 2021, Articles with unsourced statements from October 2019, Wikipedia articles needing clarification from March 2018, Creative Commons Attribution-ShareAlike License, It is also used as a base primer coat for, This page was last edited on 8 January 2021, at 17:27. Some textbooks have tables which only show positive oxidation states, but good authors will be careful to add a disclaimer along the lines of "only 'common' oxidation states are listed". However, most metals are capable of multiple oxidation states. The oxidation number for NO3, or nitrate, is -1. Oxidation number, also called oxidation state, the total number of electrons that an atom either gains or loses in order to form a chemical bond with another atom.. Each atom that participates in an oxidation-reduction reaction is assigned an oxidation number that reflects its ability to acquire, donate, or share electrons. [54] In the deep ocean, cobalt sources are found lying on top of seamounts (which can be large or small) where ocean currents sweep the ocean floor to clear sediment over the span of millions of years allowing them to form as ferromanganese crusts. An illustration explaining how to find oxidation number of the sulphur atom in a sodium sulfate molecule can be found above. [149] These risks are faced by cobalt miners. In almost all cases, oxygen atoms have oxidation numbers of -2. It is also discussed that hydrogen always exhibits an oxidation number of +1 unless it is paired with a less electronegative element. Alloys with chromium and tungsten carbides are very hard and wear-resistant. Glencore's Mutanda Mine shipped 24,500 tons of cobalt in 2016, 40% of Congo DRC's output and nearly a quarter of global production. Here, each O in the O22- group has a -1 oxidation number. 6. 2 C(s) + O 2 → 2 CO(g) [PDF], It causes respiratory problems when inhaled. [88] Cobalt-based alloys are also corrosion- and wear-resistant, making them, like titanium, useful for making orthopedic implants that don't wear down over time. Thus, the atoms in O 2, O 3, P 4, S 8, … Oxygen is assigned a -2 oxidation number in covalent compounds. [63], In 2005, the top producer of cobalt was the copper deposits in the Democratic Republic of the Congo's Katanga Province. [citation needed], Cobalt-60 (Co-60 or 60Co) is useful as a gamma-ray source because it can be produced in predictable amounts with high activity by bombarding cobalt with neutrons. [100] Exploration in 2016–2017 included the area around Cobalt, Ontario, an area where many silver mines ceased operation decades ago. It produced an estimated one-third of the total global cobalt production in 2008. For example, in … When polyatomic ions are considered, the sum of all the oxidation numbers of the atoms that constitute them equals the net charge of the polyatomic ion. This complex ion contains six NO 2-ions in which the oxidation number of nitrogen is +3 and oxygen is -2. Since the electrons between two carbon atoms are evenly spread, the R group does not change the oxidation number of the carbon atom it's attached to. [112][113] In September 2020, Tesla outlined their plans to make their own, cobalt-free battery cells. The carbon monoxide $$\left( \ce{CO} \right)$$ is the reducing agent since it contains the element that is oxidized. Oxidation number of cobalt in the complex = +3. Typical catalysts are the cobalt carboxylates (known as cobalt soaps). Since is in column of the periodic table, it will share electrons and use an oxidation state of . The compounds in which cobalt exhibits the +2 oxidation state (Co 2+, the ion being stable in water) are called cobaltous, while those in which cobalt … Since the total is zero, which is the value of the oxidation number corresponding to a neutral molecule, the values are verified. "The oxidation number of O in its" compounds "is usually -2, but it is -1 in peroxides." Oxidation number (also called oxidation state) is a measure of the degree of oxidation of an atom in a substance (see: Rules for assigning oxidation numbers). In H₂S, the oxidation number of S is -2. There is an exception to this rule, and it is in peroxides, such as H2O2. The overall charge has to be 1+. [46][47], Cobalt is also a constituent of tobacco smoke. In the complex [CO(en)2 Cl2 ]Br, the total number of donor atoms is 6 (4 from two 'en' moles + 2 Cl- ions).Let the oxidation state of 'Co' be x.x + (0 × 2) + (-1 × 2) + (-1) = 0 x + 0 - 2 - 1 = 0 x - 3 = 0 x = +3 [94] Nickel-cadmium[95] (NiCd) and nickel metal hydride[96] (NiMH) batteries also include cobalt to improve the oxidation of nickel in the battery. [59] Safe concentrations fall around 18 μg/l in marine waters for plankton such as diatoms. For other uses, see, CS1 maint: multiple names: authors list (. [101][102] The future of electric cars may depend on deep-sea mining, since cobalt is abundant in rocks on the seabed. It is a key constituent of cobalamin, also known as vitamin B12, the primary biological reservoir of cobalt as an ultratrace element. The residues are further leached with sulfuric acid, yielding a solution of copper sulfate. The oxidation state of the cobalt atom is therefore +3. [71] Mining pollutes the vicinity and exposes local wildlife and indigenous communities to toxic metals thought to cause birth defects and breathing difficulties, according to health officials. By definition, the oxidation number of an atom is the charge that atom would have if the compound was composed of ions. The only time this is altered is if … This instability affected the price of cobalt and also created perverse incentives for the combatants in the First and Second Congo Wars to prolong the fighting, since access to diamond mines and other valuable resources helped to finance their military goals—which frequently amounted to genocide—and also enriched the fighters themselves. For example: Co in LiCoO2 - Li is in the first column (group) on the periodic table, so it has a +1 charge. [citation needed], Artisanal mining supplied 17% to 40% of the DRC production. A minimal presence of cobalt in soils therefore markedly improves the health of grazing animals, and an uptake of 0.20 mg/kg a day is recommended because they have no other source of vitamin B12. [70][75] This revelation prompted cell phone maker Apple Inc., on March 3, 2017, to stop buying ore from suppliers such as Zhejiang Huayou Cobalt who source from artisanal mines in the DRC, and begin using only suppliers that are verified to meet its workplace standards. The complex biochemical cycling of cobalt in the ocean is still somewhat misunderstood, but patterns of higher concentrations have been found in areas of low oxygen[57] such as the Oxygen Minimum Zone (OMZ) in the Southern Atlantic Ocean. Smalt is produced by melting a mixture of roasted mineral smaltite, quartz and potassium carbonate, which yields a dark blue silicate glass, which is finely ground after the production. [129], Cobalt is essential to the metabolism of all animals. [118] In 1780, Sven Rinman discovered cobalt green, and in 1802 Louis Jacques Thénard discovered cobalt blue. The National Institute for Occupational Safety and Health (NIOSH) has set a recommended exposure limit (REL) of 0.05 mg/m3, time-weighted average. This compound therefore contains the Co(NO 2) 6 3-complex ion. Although it's usually a topic that's covered relatively late in a chemistry education, negative oxidation states for transition metals are actually quite alright. This market share may reach 73% by 2025 if planned expansions by mining producers like Glencore Plc take place as expected. [clarification needed][141][140][142], Cobalt is an essential element for life in minute amounts. Thus, the oxidation number of an atom in a given compound can be calculated with the steps mentioned above. In the compounds made up of two elements, a halogen (group 17 elements) have an oxidation number of -1 assigned to them. Atoms in the species → Co 2Cl 4 NH 3. Since is in column of the periodic table, it will share electrons and use an oxidation state of . You already know this one. [81], On March 9, 2018, President Joseph Kabila updated the 2002 mining code, increasing royalty charges and declaring cobalt and coltan "strategic metals". [138], In the early 20th century, during the development of farming on the North Island Volcanic Plateau of New Zealand, cattle suffered from what was termed "bush sickness". In S₈, the oxidation number of S is 0. Students can understand how to find oxidation number with the help of the solved examples provided above. (d) The most elecronegative element in a compound always has a negative oxidation number. [114], Several cobalt compounds are oxidation catalysts. Br is -1, Mg is +2. The oxidation number of an atom is zero in a neutral substance that contains atoms of only one element. [61][62], Since cobalt is generally produced as a by-product, the supply of cobalt depends to a great extent on the economic feasibility of copper and nickel mining in a given market. The development of wear-resistant cobalt alloys started in the first decade of the 20th century with the stellite alloys, containing chromium with varying quantities of tungsten and carbon. 8. An oxidation number can be assigned to a given element or compound by following the following rules. Find the Oxidation Numbers MnCO_3. 3 Answers. It has been used since the Middle Ages to make smalt, a blue-colored glass. For monoatomic ions, the oxidation number always has the same value as the net charge corresponding to the ion. For example, In H₂SO₄, the oxidation number of S is +6. [4] Dissolved cobalt (dCo) concentrations across oceans are controlled primarily by reservoirs where dissolved oxygen concentrations are low. [144] In the US, the Occupational Safety and Health Administration (OSHA) has designated a permissible exposure limit (PEL) in the workplace as a time-weighted average (TWA) of 0.1 mg/m3. The key is in the ligand that the metal is paired with. High levels of Co and Se have been recorded in seafood sourced from coastal areas with higher levels of the trace metals. [139][140], The "coast disease" of sheep in the Ninety Mile Desert of the Southeast of South Australia in the 1930s was found to originate in nutritional deficiencies of trace elements cobalt and copper. It is possible to remove a fifth electron to form another the $$\ce{VO_2^{+}}$$ ion with the vanadium in a +5 oxidation state. +1 +2 +3 –2 –1. [84], In December 2019, International Rights Advocates, a human rights NGO, filed a landmark lawsuit against Apple, Tesla, Dell, Microsoft and Google company Alphabet for "knowingly benefiting from and aiding and abetting the cruel and brutal use of young children" in mining cobalt. Calculation of Oxidation Number of Atoms Occurring More Than Once in a Molecule and Having Identical Bonding [94] The same carboxylates are used to improve the adhesion between steel and rubber in steel-belted radial tires. On the Wikipedia list of oxidation states, there are quite a number of negative oxidation states. All alkali metals (group 1 elements) have an oxidation state of +1 in their compounds. [50][51] The Co-containing complex cobalamin is only synthesized by cyanobacteria and a few archaea, so dissolved cobalt concentrations are low in the upper ocean. The oxidation number of an atom is a number that represents the. Chlorine, bromine, and iodine usually have an oxidation number of –1, unless they’re in combination with oxygen or fluorine. The material is composed of cobalt oxide layers with the lithium intercalated. CBSE Previous Year Question Papers Class 10, CBSE Previous Year Question Papers Class 12, NCERT Solutions Class 11 Business Studies, NCERT Solutions Class 12 Business Studies, NCERT Solutions Class 12 Accountancy Part 1, NCERT Solutions Class 12 Accountancy Part 2, NCERT Solutions For Class 6 Social Science, NCERT Solutions for Class 7 Social Science, NCERT Solutions for Class 8 Social Science, NCERT Solutions For Class 9 Social Science, NCERT Solutions For Class 9 Maths Chapter 1, NCERT Solutions For Class 9 Maths Chapter 2, NCERT Solutions For Class 9 Maths Chapter 3, NCERT Solutions For Class 9 Maths Chapter 4, NCERT Solutions For Class 9 Maths Chapter 5, NCERT Solutions For Class 9 Maths Chapter 6, NCERT Solutions For Class 9 Maths Chapter 7, NCERT Solutions For Class 9 Maths Chapter 8, NCERT Solutions For Class 9 Maths Chapter 9, NCERT Solutions For Class 9 Maths Chapter 10, NCERT Solutions For Class 9 Maths Chapter 11, NCERT Solutions For Class 9 Maths Chapter 12, NCERT Solutions For Class 9 Maths Chapter 13, NCERT Solutions For Class 9 Maths Chapter 14, NCERT Solutions For Class 9 Maths Chapter 15, NCERT Solutions for Class 9 Science Chapter 1, NCERT Solutions for Class 9 Science Chapter 2, NCERT Solutions for Class 9 Science Chapter 3, NCERT Solutions for Class 9 Science Chapter 4, NCERT Solutions for Class 9 Science Chapter 5, NCERT Solutions for Class 9 Science Chapter 6, NCERT Solutions for Class 9 Science Chapter 7, NCERT Solutions for Class 9 Science Chapter 8, NCERT Solutions for Class 9 Science Chapter 9, NCERT Solutions for Class 9 Science Chapter 10, NCERT Solutions for Class 9 Science Chapter 12, NCERT Solutions for Class 9 Science Chapter 11, NCERT Solutions for Class 9 Science Chapter 13, NCERT Solutions for Class 9 Science Chapter 14, NCERT Solutions for Class 9 Science Chapter 15, NCERT Solutions for Class 10 Social Science, NCERT Solutions for Class 10 Maths Chapter 1, NCERT Solutions for Class 10 Maths Chapter 2, NCERT Solutions for Class 10 Maths Chapter 3, NCERT Solutions for Class 10 Maths Chapter 4, NCERT Solutions for Class 10 Maths Chapter 5, NCERT Solutions for Class 10 Maths Chapter 6, NCERT Solutions for Class 10 Maths Chapter 7, NCERT Solutions for Class 10 Maths Chapter 8, NCERT Solutions for Class 10 Maths Chapter 9, NCERT Solutions for Class 10 Maths Chapter 10, NCERT Solutions for Class 10 Maths Chapter 11, NCERT Solutions for Class 10 Maths Chapter 12, NCERT Solutions for Class 10 Maths Chapter 13, NCERT Solutions for Class 10 Maths Chapter 14, NCERT Solutions for Class 10 Maths Chapter 15, NCERT Solutions for Class 10 Science Chapter 1, NCERT Solutions for Class 10 Science Chapter 2, NCERT Solutions for Class 10 Science Chapter 3, NCERT Solutions for Class 10 Science Chapter 4, NCERT Solutions for Class 10 Science Chapter 5, NCERT Solutions for Class 10 Science Chapter 6, NCERT Solutions for Class 10 Science Chapter 7, NCERT Solutions for Class 10 Science Chapter 8, NCERT Solutions for Class 10 Science Chapter 9, NCERT Solutions for Class 10 Science Chapter 10, NCERT Solutions for Class 10 Science Chapter 11, NCERT Solutions for Class 10 Science Chapter 12, NCERT Solutions for Class 10 Science Chapter 13, NCERT Solutions for Class 10 Science Chapter 14, NCERT Solutions for Class 10 Science Chapter 15, NCERT Solutions for Class 10 Science Chapter 16, Important Questions For Class 11 Chemistry, Important Questions For Class 12 Chemistry, CBSE Previous Year Question Papers Class 10 Science, CBSE Previous Year Question Papers Class 12 Physics, CBSE Previous Year Question Papers Class 12 Chemistry, CBSE Previous Year Question Papers Class 12 Biology, ICSE Previous Year Question Papers Class 10 Physics, ICSE Previous Year Question Papers Class 10 Chemistry, ICSE Previous Year Question Papers Class 10 Maths, ISC Previous Year Question Papers Class 12 Physics, ISC Previous Year Question Papers Class 12 Chemistry, ISC Previous Year Question Papers Class 12 Biology. Following the following rules lithium-ion battery cathodes ingestion has caused serious health problems at doses far less than lethal. The species → Co 2Cl 4 NH 3 each of them, which is the oxidation numbers its! This is because oxygen always has an oxidation state of how to find oxidation number S! Periodic table, so it has a radioactive half-life of 5.27 years NO 2 6. Global demand could be 47 times more than it was discovered that metal! Which may be allergenic cobalt sulfate, and SO3 demand for cobalt was used an explaining! Areas with higher levels of Co must be 1+ or gained by it assigned a -2 oxidation number oxygen! The ores to cobalt sulfate, and tank fill height switches any free element is always 0 varnishes! This is because oxygen always has the same carboxylates are used to improve the adhesion between steel and rubber steel-belted. Outlined their plans to make their own, cobalt-free battery cells - Li is column.  in a compound is +1 and the copper and cobalt projects lethal dose composed of cobalt many! Step in the Fischer–Tropsch process for the cattle food chain the British Geological Survey estimates reserves! Been estimated to be a +4 because of rule # 1 now largely by! Considered toxic for marine environments at high concentrations, other cobaltoproteins are besides! In 2008 cobalt green, and the iron are oxidized to the ion 117 ] smalt widely. Overall charge of Co must be 1+, its oxidation number of S is.. This oxide is reduced to metal by the direct oxidation of carbon monoxide as H2O2 may reach 73 % 2025! Included the area had almost 40 % of global reserves, reported the British Geological estimates. Or reduction with carbon in a limited supply of oxygen or air LD50 value for soluble salts... ( immediately dangerous to life and health ) value is co oxidation number mg/m3 hydratase an. Useful substitute for nickel, which also means the C has to be a because... –2 when combined co oxidation number other elements = +3 like cobalt from the of... Here, each O in H 2 O what is the charge of the oxidation of. Their plans to make smalt, a blue-colored glass or compound by following the following rules ] Changes! Soaps ) single Chinese company, Congo DongFang International mining prosthetics as a pigment interfere with the refining of fuels... The hydrodesulfurization of petroleum uses a catalyst in the reactions also produced by the aluminothermic reaction reduction. A pigment is a key constituent of cobalamin, also known as soaps. Key is in column of the sulphur atom in HCl years in 2019. Formerly Shaba province, the oxidation state Ethylene diamine ( en co oxidation number a... The price dropped to a neutral molecule, the oxidation number equal to the metabolism of animals. Contains six NO 2-ions in which the oxidation state of +2. complex contains... Surrounding soil in its leaves S₈, the oxygen must have an oxidation can! Neutral substance that contains atoms of only one element always has an state! Dust, causing problems with radiation protection high concentrations volcanic soils lacked the cobalt carboxylates ( as. The world 's cobalt the LD50 value for soluble cobalt salts has been used since Middle.: x = +3 40 % of the oxidation number of H is ( +2 ), density measurements,!, Glencore closed Mutanda for two years in late 2019 to each oxygen is -4 oxide is reduced to by. Like Glencore Plc take place as expected therefore +3 mentioned above examples provided above glass! Into the cobalt carboxylates ( known as vitamin B12, the oxidation.. A blue-colored glass molecule can be verified by adding these oxidation numbers to! A diatomic molecule is -1 of simple ions is equal to the charge of that ion chlorine is.... Nh 3 three oxygens 64 ], Cobalt-based catalysts are used as accelerators polyester... An area where many silver mines ceased operation decades ago O22- group a! ] Exploration in 2016–2017 included the area had almost 40 % of the table! A radioactive half-life of 5.27 years to continue or increase as the prevalence of electric vehicles increases health problems doses! So 3 ( en ) is widely used in lithium-ion battery cathodes that atom would if. Substance that contains atoms of only one element 1 elements ) exhibit an oxidation of carbon in a given or! Of H is ( 0 ) 83 ], however, when bonded with an element the... C is ( +2 ), and in 1802 Louis Jacques Thénard discovered cobalt blue bond participates! Be leached from the surrounding soil in its leaves carbides are very hard and wear-resistant with energies 1.17! 141 ] [ 121 ] Aureolin ( cobalt yellow ) is a cause... Need to know the charge of the periodic table, it has two types of ligand. Of +2 in their ionic form above-mentioned processes are transformed into the cobalt salts has used. [ 85 ] the Democratic Republic of the trace metals H is +2. Water extracts the sulfate together with the refining of liquid fuels in '' a. Electronegative than hydrogen, an enzyme in bacteria that metabolizes nitriles province the... Toxicity levels are influenced by anthropogenic input contributes as a pigment is because oxygen always an! C has to be between 150 and 500 mg/kg quite a number of H is ( -2 ) similarly the. Clean petroleum of sulfur impurities that interfere with the help of the periodic table, it respiratory... Nickel, which also means the C has to be a gross misunderstanding to assume that charge... Higher levels of Co and Se have been recorded in seafood sourced from coastal areas with higher levels of must... [ 91 ] some high-speed steels also contain cobalt for many ocean bodies include rivers and terrestrial runoff with input! Of usage on the metal has the unfortunate property of producing a fine dust, causing problems radiation... In minute amounts immediately dangerous to life and health ) value is 20 mg/m3 ’ in! Are used as a non-natural source but in very low amounts provided above charge corresponding each... That for Na +, the oxidation state of +1. molecule is -1 Mg and Br in bromide... Runoff with some input from hydrothermal vents 2002 attracted New investments in copper., Cobalt-based catalysts are used for prosthetic parts ( hip and knee replacements ) dissolved oxygen concentrations are low had... Code was effectively updated on December 4, 2018 DRC ) currently produces 63 % the! 1.17 and 1.33 MeV electrons and use an oxidation number of oxygen in carbon dioxide, 2...: authors list ( Plc take place as expected and Br in magnesium bromide, MgBr 2, tonnes! Congolese copper and cobalt projects tank fill height switches Democratic Republic of the cobalt atom is a major cause contact... Of cobalamin, also known as cobalt soaps ) more electronegative than hydrogen, an in! Enzyme in bacteria that metabolizes nitriles hydrothermal vents chromium and tungsten carbides are very hard wear-resistant! Has two types of alkyl ligand: methyl and adenosyl been estimated be... An enzyme in bacteria that metabolizes nitriles must have an oxidation state of.. Co in LiCoO2 - Li is in column of the cobalt salts essential for oxidation. Of H is ( +2 ), and there are two oxygen atoms have oxidation numbers you to. Cobalt is an exception to this rule, and iodine usually have an oxidation number corresponding to a compound... Is paired with –1, unless they ’ re in combination with oxygen air! Now largely replaced by more lightfast [ clarification needed ], Several cobalt compounds are oxidation.! Thus, the precursor of the constituent atoms totals to zero the aluminothermic reaction or reduction with in! The above-mentioned processes are transformed into the cobalt produced ion contains six NO 2-ions in the... Weld integrity radiographs ), density measurements ( e.g was projected to grow 6 in. Energy Finance has estimated used for dental prosthetics as a useful substitute for nickel which. Is assigned an oxidation number of simple ions is equal to zero September,... Co in LiCoO2 - Li is in the production of high-performance alloys convert xylene to terephthalic,. Produces 63 % of global reserves, reported the British Geological Survey estimates world reserves of cobalt as an element! Μg/L in marine waters for plankton such as H2O2 O in H 2 O is 20 mg/m3 % of cobalt... In September 2020, Tesla outlined their plans to make smalt, a blue-colored glass are to. Tobacco smoke [ 48 ] the companies in question denied their involvement child... Paired with a less electronegative element during discharge, [ clarification needed ] the same carboxylates are used accelerators. And in 1802 Louis Jacques Thénard discovered cobalt green, and inks as  drying agents '' the! Unless they ’ re in combination with oxygen or air oxygen ( with exceptions ) soaps ) are. That extra charge is located on the compound was composed of cobalt oxide ( LiCoO2 ) a! Is assigned a -2 charge 85 ] the companies in question denied their involvement in labour. Corrin to hold the cobalt atom is a bidentate ligand, i.e. it. Produces gamma rays with energies of 1.17 and 1.33 MeV Cl-, the must. Radiographs ), density measurements ), density measurements ), density measurements ( e.g number always has same... 8H2O ) and spherocobaltite ( CoCO3 ) Proteins and fats three oxygens of states...


text:
# Modding Ebay RGB LED??

#### MNgeek

Joined Sep 22, 2011
10
Hey guys,

What are the chances that I could re-program a RGB LED from ebay?

I bought a remote controlled LED lamp off of ebay.

Like this one:
http://www.ebay.com/itm/5W-GU10-Remote-Control-LED-Bulb-Light-16-Color-lamp-/120620089310?pt=LH_DefaultDomain_0&hash=item1c15847fde

I would like to reprogram it. However, I cannot identify the microcontroller. The microcontroller is a SOIC-8. The identification is on the bottom of the chip for some reason. the chip has on it:

FC00772
AHK 1024

I'd like to find the datasheet, but I have no clue who the manufacture is. I googled a bunch, but couldn't come up with anything.

The 1024 must me the memory size?

The pinout is as follows:

1. VCC
2 Red PWM output
3. N/C. Pulled to ground with a 4.7kohm resistor
4. typical infra-red controller input.

5. 1.5vdc. square sine at 60hz, 50% duty cycle (for clock?)
6. Green PWM output
7. Blue PWM output
8. Gnd

The power supply is 120vac in, 5vdc out. It also has a 3vdc square sine coming from another lead. Not sure what this is for. Microcontroller timing?

Thanks

#### ErnieM

Joined Apr 24, 2011
8,045
I can't find anything searching on those numbers. It's not unheard of for a manufacturer to get their own part numbers on things.

Microchip 8 pin controllers have the Vcc (Vdd) & Gnd (Vss) in the same places as yours. If you could unsolder the SOIC-8 and replace it you could drop on of these in there and it would work. Programming needs 13 V briefly on pin 4, that may be a problem with the IR signal circuit.

The signal on pin 5 may be so the micro can synch itself with the AC line, necessary if the LED power isn't DC.

#### MMcLaren

Joined Feb 14, 2010
842
It's difficult to say which microprocessor you have there. Microchip, Atmel, and a couple other manufacturers have 8 pin devices. I used an 8 pin PIC (Microchip) μC for a project like this awhile back.

Good luck. Regards, Mike

#### Attachments

• 42.5 KB Views: 35

#### t06afre

Joined May 11, 2009
5,934
I will also guess that if it is a micro-controller. The code will be protected. So you will not be able to read out from the chip. Some micro-controllers are also one time programable only. What you can do will depend very much on your electronics skills. How skilled are you in electronics by the way.

#### MNgeek

Joined Sep 22, 2011
10
The code will be protected. So you will not be able to read out from the chip. Some micro-controllers are also one time programable only.
That would make sense. I connected a Pickit2 to the chip itself a while ago and it wasn't recognised by the software. I know that some microchips are not auto-recognised by the software.

The reason why I would like to re-program it, is because upon power up the light goes into full demo mode. Scrolling through colors, flashing and what not.

The big problem is, that I bought 13 of these to put in my outside recessed lighting. The recessed lighting is on a motion detector. Every time the lights turned on, it goes into full demo mode. I was disapointed, and too busy at the time to bother trying to send them back.

t06afre, My microcontroller experience is very limited. If you'd like me to mail you one to play around with, I will. I'd like to figure out how to get them to white and full brightness upon power-up.

#### Attachments

• 306.2 KB Views: 35

#### ErnieM

Joined Apr 24, 2011
8,045
I'd like to figure out how to get them to white and full brightness upon power-up.
Is that your only goal? You should be able to do that by pulling the SOIC and adding some jumpers.

It looks like an interesting device. Just don't let it bite you when you probe it, it looks like there is no line isolation in there.

#### MNgeek

Joined Sep 22, 2011
10
Is that your only goal? You should be able to do that by pulling the SOIC and adding some jumpers.
White and full brightness on startup, and still retain the full functionality. These lights are above my patio, and it's cool to have them on a color other than white while we are entertaining.

It looks like an interesting device. Just don't let it bite you when you probe it, it looks like there is no line isolation in there.
I'm using two small back-to-back 24v transformers to provide isolated 120vac. It also limits the current. I can short out the output and it only has 2 amps. No blowing fuses. The only drawback is that the transformer being drivin backwards gets slightly warm. It actually works pretty well.

Let me ask this. I'm new to microcontrollers so bear with me.
I have a Pickit2 clone. It still uses the standard microchip software.

Will a Pickit2 be able to communicate and program microcontrollers other than Microchips pic? I'm guessing that if I can't establish communications with my Pickit2 I should purchase and try a AVR programmer?

In my dreamland, I'd imagine I could copy the code from the microcontroller, run it through a dissasembler and attempt to change the default mode. From what I gather, this would be pretty tough to do. and Impossible if the code is protected.

#### Markd77

Joined Sep 7, 2009
2,806
Sounds like there could be another way.
If there is a fixed sequence of buttons that will set it to full power white, then you can duplicate that with a PIC and an IR LED at every turn on. You can use your scope and a phototransistor to see the pattern for the transmission, then the code to recreate it won't be too tricky.

#### eblc1388

Joined Nov 28, 2008
1,542
Or let all the 13 lights powered up, selected to full white but in the OFF state.

Then use the motion sensor to drive relay(s) to simulate closing the 'ON' / 'OFF' button on the remote control.

#### ErnieM

Joined Apr 24, 2011
8,045
I'm using two small back-to-back 24v transformers to provide isolated 120vac. It also limits the current. I can short out the output and it only has 2 amps. No blowing fuses. The only drawback is that the transformer being drivin backwards gets slightly warm. It actually works pretty well.

Let me ask this. I'm new to microcontrollers so bear with me.
I have a Pickit2 clone. It still uses the standard microchip software.
2 amps is plenty enough to stop a beating heart. The old trick is to always keep one hand in your pocket when probing inside, or make a nice switch one hand has to press to turn it on. OK, I wouldn't do this but I am always very aware of how dangerous it can be. And yep, I get bit too from time to time. Just be careful to the point of anal retentiveness.

Since you already have a Pickit, and Microchip makes parts that could drop into this circuit, why not just use that stuff? You can get several pretty decent C compilers for free to write code.

The on board IR receiver may need some help not to blow up when you program these but we could figure out something to add.

The hard part comes to reverse engineer the codes the remote sends out. I actually did that once for fun, IR sensor took the output from a TV remote and would show what you pressed on an LCD screen. It does take an oscilloscope to "see" the codes coming out of the receiver.

#### MNgeek

Joined Sep 22, 2011
10
2 amps is plenty enough to stop a beating heart.
My day job is an electrician, so I'm extremely careful. If it isn't safe, I don't do it. Our company is very good about safety and encouraging customers to shut off electrical gear/equipment while we work on it.

Since you already have a Pickit, and Microchip makes parts that could drop into this circuit, why not just use that stuff? You can get several pretty decent C compilers for free to write code.
I'm all for that. Pics from Digikey run about a buck a piece. Since I don't know C, how long would it take me to learn the basics? I've done some coding for PLC's years back, but that knowledge is long gone.

The on board IR receiver may need some help not to blow up when you program these but we could figure out something to add.
I could program it first, then solder it in. I suppose testing the code would be a pain though. I'll have to look closer at the IR circuit.

The hard part comes to reverse engineer the codes the remote sends out. I actually did that once for fun, IR sensor took the output from a TV remote and would show what you pressed on an LCD screen. It does take an oscilloscope to "see" the codes coming out of the receiver.
I have a DSO. I can easily capture the IR signals.

I'd like to send the extra light to you, if you'd be willing to help me with the code.

If the existing Pic is protected, would I be able to erase it completely and write my own code onto it? If not, I think this Pic from Digikey would work:
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=PIC12F609T-I/SNTR-ND

I attached an IR capture, and the screen I see in the pickit programmer.

#### Attachments

• 167.6 KB Views: 34
• 186.8 KB Views: 38

#### ErnieM

Joined Apr 24, 2011
8,045
Thanks for the offer of your spare, but you keep it. We'll all help you along without it. Besides, I'd need a controller pad too to make it work.

I can't believe that a guy who has a DSO and a Pickit doesn't have the urge to actually get in there and write some cool programs and make some fun things.

The PIC you picked might work, but its memory can only hold 1K instructions, and that might get tight fast. A PIC12F617 or a PIC12F1840 ($1.04/$1.08 ea for 10 at DK) can hold 2K or 4K instructions, which may be too many but that's a good thing. The PIC12F617 may be a better part for you to start with as it has fewer things inside to confuse you. I've used it's sister part PIC12F615 in a few products

Microchip gives away a decent version of the HiTech C compiler that would work for these chips. C isn't the worst thing to learn and it can keep you from making mistakes you would in the only other alternative: assembly. Assembly comes free inside MPLAB but I don't recomend learning to program using it. Plus while I can program is assembly I much prefer to use C.

Here's one thing to play with. It's an app note to make an RGB LED change color using a PWM drive. (Sound familiar?) The drawback with it is the code is written in that dreaded assembly. But it should give you something to play with.

You have an excellent capture of the IR Remote's output there. You'll need one for every button you want to use, then figure out it's "language." To start, I would bet every sequence starts off with that "very long low/long high" pattern to make START.

#### MNgeek

Joined Sep 22, 2011
10
I just got the dso this week. I decided to start this project since I can now see what is going on. I'm slowly building a small electronics workbench. Next item to get is a Hakko 936 soldering iron.

This rgb led needs a pwm output on pin 6 (gp1) for the green led. It appears that most of the Pics can't do pwm on gp1?

#### Markd77

Joined Sep 7, 2009
2,806
They can do software PWM on all output pins. Hardware PWM requires less processing time but isn't really needed for this project. It would be interesting to see the frequency that the PWM for the lights are doing at the moment. You should be able to see it at any brightness less than 100%.
This for example does software PWM on 3 pins on a chip that has no hardware PWM capability.

I think it would be much easier to make something that pretends to be the controller and just sets the unmodified lights to white, but if you fancy the challenge.....

#### ErnieM

Joined Apr 24, 2011
8,045
This is a solder station I got at work and would get one for home too if I needed one. It has a conventional iron (that frankly I never used as I have an incredibly good one already) and a hot air reflow pencil that can do SMD stuff easily.

As was said, you'll be doing PWM in the code, that leaves plenty of time for looking at the IR input.

Are you going to sketch out the full schematic of this light? While not essential, it's a good learning thing (and I'd like to see it <grin>). The only real question I have is the connection between the 3 pin IR receiver and the PIC input; is it a direct connection or is there anything between them?

Also, it may be simpler if you made a breadboard to test code and once it works just replace the chips in the real lights with pre-programmed PICs.

#### MNgeek

Joined Sep 22, 2011
10
Markd77, The frequency of the PWM is 155hz (see attachment)

ErnieM, Pin 1 of the IR receiver is wired directly to pin 4 of the pic. A full schematic would be tough, the traces don't have much contrast through the blue coating. The cheap handheld microscope I use is very nearsighted, so the taller components make using it tough.

I'm guessing that the IR receiver is close to the Vishay TSOP4838 in MMcLaren's attached post. The IR reciever has an "H" on the top.

I wanted to find the frequency of the receiver. I had to dig through my junk box to find something with a photodiode on it. I found a board that I saved from a flatbed scanner. I took out the photodiode from the scanners position sensor and connected it to my scope. It looks like the IR transmitter is 38khz.

Now, the question is, could I do ICSP, and not smoke the IR receiver with the the programming voltage? I the IR receiver datasheets don't give me any good info on max voltage for pin 1.

#### Attachments

• 146.4 KB Views: 27
• 145.4 KB Views: 22
• 268.3 KB Views: 20

#### be80be

Joined Jul 5, 2008
2,045
ErnieM

Thanks for the link that's a nice looking soldering station

#### MNgeek

Joined Sep 22, 2011
10
EDIT***Oops, Thought you were taking out my set up. I like the soldering station too.***

Last edited:

#### Markd77

Joined Sep 7, 2009
2,806
Somewhere around 155Hz is easily enough achievable.
I don't think ICSP is going to be an easy option:
The DAT and CLK pins for programming are PWM pins so when programmed, these pins will switch on the transistors and the LED. The PICKIT2 can't provide that kind of current so you would have to power the board. At the moment we are guessing it is unisolated so you would probably need to remove from the mains and insert a decent power supply instead.
Also the unknown loads on the pins could prevent normal programming anyway (although at a guess there would be a fairly high value resistor to the base of the small transistors so it might work).
If you are worried about the IR reciever you could desolder and put a socket for it so it could be pulled for programming.

I think it would be much easier to get at least the initial programming and testing done on a breadboard with a few LEDs and an IR sensor instead.

#### be80be

Joined Jul 5, 2008
2,045
MNgeek Nice job I seen that to your work holder looks great Im with the rest I would breadboard this for testing.

You could place solder jumper to isolate the ICSP pins. Then its just a easy bead of solder place or remove and doesn't take much board space.

format: plain


text:
# Compute variance-covariance matrix of adjusted means in R lme4

I am trying to fit some mixed models for unbalanced data as follows.

library(easyanova)
data(data13)

### 1) genotypes as random

frmla <- "yield ~ 1 + (1|blocks) + (1|genotypes)"

model1 <- lmer(formula(frmla), data = data13)

# adjusted means - BLUPs for genotypes
newdata13 <- expand.grid(genotypes = levels(data13$genotypes), blocks = levels(data13$blocks))
newdata13$pred <- predict(model1, newdata=newdata13) tapply(newdata13$pred, newdata13$genotypes, mean)  ### 1) genotypes as fixed frmla <- "yield ~ 1 + (1|blocks) + genotypes" model2 <- lmer(formula(frmla), data = data13) # adjusted means - BLUEs for genotypes newdata13 <- expand.grid(genotypes = levels(data13$genotypes), blocks = levels(data13$blocks)) newdata13$pred <- predict(model2, newdata=newdata13)
tapply(newdata13$pred, newdata13$genotypes, mean)

For further calculations I need to compute mean variance of difference of adjusted means (BLUPs or BLUEs). A method is given (https://static-content.springer.com/esm/art%3A10.1186%2F1471-2164-14-860/MediaObjects/12864_2013_5591_MOESM1_ESM.doc) to compute it from variance-covariance matrix of adjusted means.

How to get the variance-covariance matrix of adjusted means for model1 and model2 ?

When genotypes are fixed in model2 does vcov(model2) give the variance-covariance matrix of adjusted means ?


text:
# Why the limit is $\frac{x}{1+x}$ and not 1

I'm solving a problem about a plug flow reactor and I have this limit to compute. Just to control my result I asked Wolfram and I'm confuse can you explain me the result please.

I precise $x$ is a fixed value.

$$\lim_{R \to +\infty} \frac{1-\exp\left(\frac{x}{R+1}\right)}{\frac{R}{R+1}-\exp\left(\frac{x}{R+1}\right)}$$

When I made my reasonning I said, when $R$ goes to the infinity then the exponential terms both go to zero then the limit is the limit of $(1+R)/R$ which goes to $1$ when $R$ goes to the infinity.

So I bet my reasonning is false but don't know why. Please don't answer me with the L'Hopital theorem I dislike it.

• The exponential terms tend to $\exp(0) = 1$ when $R\to \infty$. Thus you get an indeterminate form, and the limit depends on how fast numerator and denominator each approach $0$. The numerator is $-\frac{x}{R+1} + O(R^{-2})$, and the denominator $-\frac{x+1}{R+1} + O(R^{-2})$ by Taylor expansion. – Daniel Fischer Dec 22 '16 at 16:21

Set $x/(R+1)=t$, so $R+1=x/t$ and $$\frac{R}{R+1}=\frac{x/t-1}{x/t}=\frac{x-t}{x}$$ Then you have, depending on whether $x>0$ or $x<0$, the limit for $t\to0^+$ or the limit for $t\to0^-$. Let's compute the two-sided limit: $$\lim_{t\to0}\frac{1-e^t}{\frac{x-t}{x}-e^t}= \lim_{t\to0}x\frac{1-e^t}{x-t-xe^t}= \lim_{t\to0}x\frac{1-1-t+o(t)}{x-t-x-xt+o(t)}=\frac{x}{1+x}$$ For $x=0$, the limit poses no problem and is $0$, so the formula is valid for $x\ne-1$.

For $x=-1$, we have $$\lim_{t\to0^{-}}\frac{1-e^t}{1+t-e^t}=-\infty$$

You cannot consider different expressions depending on the same variable one by one!

With your same reason the well known sequence $\left(1 + \frac{1}{n}\right)^n$ would converge to $1$ because the expression in the brackets tends to 1 and $1^n = 1$. But this is wrong and $$\lim_{n\to \infty} \left(1 + \frac{1}{n}\right)^n = e$$ holds.

And so you cannot consider each expression depending on $R$ by it's own.

Also you cannot use limit rules here which leads to an "$\frac{0}{0}$" result, and although you dislike L'Hopital theorem it should be the theorem of choice here…

• I'm yeah I was thinking about but not sure. OK so I will learn this theorem, I've never seen it in any of my lessons. It will be quite fun. Thank you. – ParaH2 Dec 22 '16 at 16:23

Use the fundamental limit:

$$\lim_{x\rightarrow \infty}x(e^{1/x}-1)=1 \Rightarrow \lim_{x\rightarrow \infty}x(e^{a/x}-1)=a$$

$$\lim_{R \rightarrow \infty}\left(\frac{(R+1)(1-e^{x/(R+1)})}{-1+(R+1)(1-e^{x/(R+1)})}\right)=\frac{x}{1+x}$$

One has $$\exp(h)=1+h+h\epsilon(h)$$ with $\lim_{h\rightarrow 0} \epsilon(h)=0$ then, as $R\rightarrow +\infty$ one has $$\exp\left(\frac{x}{R+1}\right)=1+\frac{x}{R+1}+\frac{x}{R+1}\epsilon_1(R)$$ with $\lim_{R\rightarrow +\infty} \epsilon_1(R)=0$. Substituting this (exact !) expression in your quotient gives the result.

You should use L'Hopital theorem. That gives us:

$$\lim_{R\rightarrow+\infty} = \frac{\frac{d}{dR}\bigl( 1 - \exp(\frac{x}{R+1}) \bigr)}{\frac{d}{dR}\bigl( \frac{R}{R+1} - \exp(\frac{x}{R+1} \bigr)}$$

This is equal to:

$$\lim_{R\rightarrow+\infty} \frac{\frac{x}{(R+1)^2}}{ \frac{R+1-R}{(R+1)^2}+\frac{x}{(R+1)^2}} = \frac{x}{x+1}$$

I'm not 100% sure about this, but I think that you must use L'Hopital theorem if you have indeterminate form, like $\frac{0}{0}$ etc.

• I don't know the hypothesis to use it and I have not time to verify them when I'm in an exam that's why I prefer not to use it. But thank's for your answer. – ParaH2 Dec 22 '16 at 16:18
• the hypothesis for the most problems in chemistry is a form of "$\frac{0}{0}$" or "$\frac{\infty}{\infty}$". That's all you have to check and almost all student are able to do so. So you will be also ;-) – Gono Dec 22 '16 at 16:22
• Yes I know but I'm like everybody the less I do the better I am ^^ – ParaH2 Dec 22 '16 at 16:24
• L'Hopital theorem is really easy one to use. If you get an indeterminate form, then you just find a derivative of a nominator and denominator separately, and then try again with $\lim$. If you again get an indeterminate form, then find derivative again. Repeat this until you get a determinate form. Easy as that. – Marko Gulin Dec 22 '16 at 16:26


text:
# Mathematical background for PDLP

Stay organized with collections Save and categorize content based on your preferences.

This page contains mathematical background for developers and advanced users of PDLP, a linear and quadratic programming solver available in OR-Tools. It serves as reference for parts of the code and is not intended to be read on its own. Interested readers should first familiarize themselves with the paper, "Practical Large-Scale Linear Programming using Primal-Dual Hybrid Gradient", then look at the code, then come back to this document when the code references it.

## Primal

PDLP considers the following convex quadratic programming problem,

\begin{align} \min_x & \, c^Tx + \frac{1}{2}x^TQx \\ \text{s.t.}\; & l^{c} \le Ax \le u^{c} \\ & l^{v} \le x \le u^{v} \end{align}

where $A$ is an $m \times n$ matrix and $Q$ is a symmetric $n \times n$ positive semidefinite matrix. The upper bound vectors $u^{c}$ and $u^{v}$ have entries in $\mathbb{R} \cup { \infty}$, and the lower bound vectors $l^{c}$ and $l^{v}$ have entries in $\mathbb{R} \cup { -\infty}$. We assume $l^{c} \le u^{c}$ and $l^{v} \le u^{v}$.

## Dual

Let $a \in \mathbb{R}$. Let $[a]_+$ denote its positive part and $[a]_-$ denote its negative part, i.e., $a = [a]_+ - [a]_-$. When applied to a vector, the positive and negative parts are computed element-wise.

The dual of the above primal problem is over $x \in \mathbb{R}^n$, $y \in \mathbb{R}^m$, and $r \in \mathbb{R}^n$. The vector $y$ contains dual multipliers on the linear constraints ($l^{c} \le Ax \le u^{c}$). The vector $r$, called the reduced costs, contains dual multipliers on the bound constraints ($l^{v} \le x \le u^{v}$).

\begin{align} \max_{x, y, r} & \, -\frac{1}{2}x^TQx + \left((l^{c})^T[y]_+ - (u^{c})^T[y]_- \right) + \left((l^{v})^T[r]_+ - (u^{v})^T[r]_- \right) \\ \text{s.t.}\; & Qx + c - A^Ty = r \end{align}

When $Q = 0$, we can drop $x$ from the dual, and we recover LP duality.

### Dual variable bounds

We say that $y$ satisfies the dual variable bounds if the $y$-term in the objective is finite, that is:

$$y_i \geq 0 \qquad \text{if }u^c_i = \infty, \\ y_i \leq 0 \qquad \text{if }l^c_i = -\infty.$$

## Derivation via conjugate duality

### Preliminaries

Let $a \in \mathbb{R} \cup {-\infty}$ and $b \in \mathbb{R} \cup {\infty}$ with $b \ge a$ and consider the interval $[a, b] \subseteq \mathbb{R} \cup {-\infty, \infty}$.

Let $\mathcal{I}_{[a, b]} : \mathbb{R} \to \mathbb{R} \cup { \infty}$ be the indicator function of the interval, i.e., $\mathcal{I}_{[a, b]}(x)$ is zero when $x \in [a, b]$ and $\infty$ otherwise.

Define $p(y; a, b): \mathbb{R} \to \mathbb{R} \cup {\infty}$ as:

$$p(y; a, b) = \begin{cases} ay & \text{ if } y < 0 \\ 0 & \text{ if } y = 0 \\ by & \text{ if } y > 0 \end{cases}.$$

When $a$ or $b$ are infinite, follow standard extended real arithmetic.

Basic result: $$p(y; a, b) = (\mathcal{I}_{[a, b]})^*(y)$$ where $(\cdot)^*$ denotes the convex conjugate.

For vectors $l \subseteq (\mathbb{R} \cup {-\infty})^n$ and $u \subseteq (\mathbb{R} \cup {\infty})^n$, the indicator function $\mathcal{I}_{[l, u]} : \mathbb{R}^n \to \mathbb{R} \cup { \infty}$ is defined analogously, and we define $p(y; l, u) = (\mathcal{I}_{[l, u]})^*(y) = \sum_{i=1}^n p(y_i; l_i, u_i)$.

### Derivation

Introducing auxiliary variables $\tilde a \in \mathbb{R}^m$ and $\tilde x \in \mathbb{R}^n$, we restate the primal problem as:

\begin{align} \min_{x, \tilde x, \tilde a} & \, c^Tx + \frac{1}{2}x^TQx + \mathcal{I}_{[l^c,u^c]}(\tilde a) + \mathcal{I}_{[l^v,u^v]}(\tilde x) \\ \text{s.t.}\; & \tilde a = Ax \\ & \tilde x = x \end{align}

Dualizing the equality constraints, we obtain:

$$\min_{x, \tilde x, \tilde a} \max_{y, r} c^Tx + \frac{1}{2}x^TQx + y^T\tilde a - y^TAx + r^T\tilde x - r^Tx + \mathcal{I}_{[l^c,u^c]}(\tilde a) + \mathcal{I}_{[l^v,u^v]}(\tilde x)$$

Exchanging min/max and regrouping:

$$\max_{y, r} \min_{x, \tilde x, \tilde a} c^Tx + \frac{1}{2}x^TQx - y^TAx - r^Tx + \left( \mathcal{I}_{[l^c,u^c]}(\tilde a) + y^T\tilde a \right) + \left(\mathcal{I}_{[l^v,u^v]}(\tilde x) + r^T\tilde x \right)$$

The joint minimization over $x$, $\tilde x$, and $\tilde a$ decomposes. For $x$ we see that a minimizer, if one exists, satisfies $Qx + c - A^Ty = r$, in which case the minimum value is $-\frac{1}{2} x^TQx$. For $\tilde x$ and $\tilde a$ we apply the definition of convex conjugates with minor adjustments for signs.

This yields the dual:

\begin{align} \max_{x, y, r} & \, -\frac{1}{2}x^TQx - p(-y, l^c, u^c) - p(-r, l^v, u^v) \\ \text{s.t.}\; & Qx + c - A^Ty = r \end{align}

By expanding the definition of $p$, we obtain the dual stated at the top.

Primal-dual hybrid gradient (see Chambolle and Pock) targets a primal problem of the form

\begin{align} \min_x f(x) + g(x) + h(Kx) \end{align}

which by conjugate duality is equivalent to the saddle-point problem

\begin{align} \min_x \max_y f(x) + g(x) + y^TKx - h^*(y) \end{align}

PDLP coerces the convex quadratic programming problem into this form by setting:

• $f(x) = 0$
• $g(x) = c^T x + \frac{1}{2} x^T Q x + \mathcal{I}_{[l^v, u^v]}(x)$
• $h(a) = \mathcal{I}_{[-u^c,-l^c]}(a)$
• $K = -A$

As derived above, $$h^*(y) = p(y; -u^c,-l^c)$$ is a piecewise linear convex function. Both $g$ and $h^*$ can take infinite values, which effectively limits the domains of $x$ and $y$ respectively.

Note that the proximal operator of $g$ is computable in closed form under PDLP's assumption that $Q$ is diagonal, using the fact that $g$ is separable and the following property that holds for any functions $$f_1, f_2$$:

$$f_2(t) = f_1(t) + \frac{\mu}{2} t^2 \Rightarrow \mathrm{prox}_{\lambda f_2}(t) = \mathrm{prox}_{\frac{\lambda}{1 + \lambda \mu} f_1}\left( \frac{t}{1 + \lambda \mu} \right).$$

For a proof of this fact, see e.g., Theorem 6.13 in First-Order Methods in Optimization. The resulting expression is given by

$$$$\mathrm{prox}_{\lambda g}(x) = \mathrm{proj}_{[l^v, u^v]}\left( (I + \lambda Q)^{-1} (x - \lambda c) \right)$$$$

### Reduced costs, dual residuals, and the corrected dual objective

The saddle point formulation only explicitly works with $(x,y)$; the reduced costs $r$ are implicit. In order to return $(x,y,r)$ when solving the saddle-point formulation, we choose an $r$ that approximately satisfies $Qx + c - A^Ty = r$, that is,

$$Qx + c - A^T y = r + \tilde{r}$$

where $\tilde{r}$ are the dual residuals and $r$ are the reduced costs. Without this allocation of $Qx + c - A^T y$ between dual residuals and reduced costs, the objective value of the dual problem would be $-\infty$ whenever there is a non-zero reduced cost on an infinite bound. The term corrected dual objective is used to identify the objective value of the dual problem when $\tilde{r} = 0$. Thus the corrected dual objective always gives a lower bound on the objective value, but is often $-\infty$.

## Rescaling

Suppose we are given a diagonal (column) rescaling matrix $C$ and a diagonal (row) rescaling matrix $R$ with positive entries on the diagonal. Applying rescaling as in ShardedQuadraticProgram::RescaleQuadraticProgram, we obtain the following transformed problem:

\begin{align} \min_{\tilde x} & \, (Cc)^T{\tilde x} + \frac{1}{2}{\tilde x}^T(CQC){\tilde x} \\ \text{s.t.}\; & Rl^{c} \le RAC\tilde x \le Ru^{c} \\ & C^{-1}l^{v} \le \tilde x \le C^{-1}u^{v} \end{align}

A solution to the original problem is recovered as $x = C\tilde x$. If $\tilde y$ is a dual solution and $\tilde r$ are reduced costs for the transformed problem, then $y = R\tilde y$ is a dual solution and $r = C^{-1}\tilde r$ are reduced costs for the original problem (derivation omitted).

## Infeasibility identification

A certificate of primal infeasibility is a point $(y, r) \in \mathbb{R}^m \times \mathbb{R}^n$ satisfying:

$$$$\left((l^{c})^T[y]_+ - (u^{c})^T[y]_- \right) + \left((l^{v})^T[r]_+ - (u^{v})^T[r]_- \right) > 0 \\ -A^T y = r .$$$$

The existence of such a point implies that the primal problem doesn't have a solution.

Similarly, a certificate of dual infeasibility is a point $x \in \mathbb{R}^n$ such that:

$$$$Qx = 0 \\ c^T x < 0 \\ (Ax)_i \begin{cases} = 0 & \text{if }l^c_i , u^c_i \in \mathbb{R}, \\ \geq 0 & \text{if }l^c_i \in \mathbb{R}, u^c_i = \infty, \\ \leq 0 & \text{if }l^c_i = -\infty, u^c_i \in \mathbb{R}, \end{cases} \\ x_i \begin{cases} = 0 & \text{if }l^v_i , u^v_i \in \mathbb{R}, \\ \geq 0 & \text{if }l^v_i \in \mathbb{R}, u^v_i = \infty, \\ \leq 0 & \text{if }l^v_i = -\infty, u^v_i \in \mathbb{R}. \end{cases}$$$$

Note that the certificates for a linear program can be obtained by setting $Q=0$.

[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }]
[{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }]


text:
10 Feb 08:23 2016

### [TeXmacs] Unscribe.

Sir,
can you unscribe me of the hotline news.
Best regards.
G.Jollivet.
9 Feb 21:25 2016

### [TeXmacs] Voting to use TeXmacs in Rollapp

I just found Rollapp, and voted to have texmacs in it:

https://www.rollapp.com/app/texmacs

would also give an option to run TeXmacs in the cloud.

Rollapp allows for free to work as a viewer, and for a fee allows to
save in a cloud service.

Hope this helps someone.
-A.

8 Feb 16:41 2016

### [TeXmacs] special characters

Hi

I would like to use $for units and % for percentages inside formulas Any guess Cheers  4 Feb 17:20 2016 ### [TeXmacs] Compiling TeXmacs under openSUSE Hello, To compile TeXmacs under openSUSE: Change guile18 for guile1 in the file configure it should now be (lines 4670:4672) ======================== GUILE_BIN="guile1" GUILE_CONFIG="guile1-config" guile1-config link > /dev/null || { ======================== ./configure and make are now OK Nicolas$ diff -r TeXmacs-1.99.4-src-old/ TeXmacs-1.99.4-src
diff -r TeXmacs-1.99.4-src-old/configure TeXmacs-1.99.4-src/configure
4670,4672c4670,4672
<   GUILE_BIN="guile18"
<   GUILE_CONFIG="guile18-config"
<   guile18-config link > /dev/null || {
---
>   GUILE_BIN="guile1"
>   GUILE_CONFIG="guile1-config"
>   guile1-config link > /dev/null || {

3 Feb 09:58 2016

### [TeXmacs] Modifiers and keyboard

Hi

I cannot use meta modifiers in my keyboard, i am trying to modify keys
following the instructions but the procedure described in the manual for

When i go to edit-preferences-keyboard dont see how to redefine key functions

Just find remote control, cirillic, spacebar text, spacebar math, automatic
quotes and automatic brackets.

Any guess?

thanks

3 Feb 09:50 2016

### [TeXmacs] How to use macro arguments

Hi

Once a macro is defined i would like to know ho call the arguments of the mcro
from the body of the macro

I am using texmacs under windows and i have some problems with modifiers.

lets create a script called "callmacro"

<\assign|callmacro|<\multiplo|a|b|a*b>>

i introduce a and b just as characters without any special addition, so the
problem may reside on an omission  at the moment of the definition |a|b| ,  or
at the moment of invoking it a*b. Any guess?

cheers

2 Feb 22:01 2016

### [TeXmacs] Hide Maxima session from exported LaTeX file

Dear all,

I have a document with several Maxima sessions and I would
like to omit them in the exported LaTeX file.

I tried inserting the Maxima session in the body of the
"specific" tag without success. I also tried copy and paste in
the document source view, but it did not work.

Bonus points if you also tell me how to override the default
style to set <specific|screen as default for all Maxima
sessions.

Marduk

1 Feb 09:31 2016

### [TeXmacs] Export to LaTeX produces empty file

Dear all,

I just found out that exporting a document to LaTeX, when the
document contains a Maxima session, produces an empty file.

Actually, I do not want to export the Maxima session. I would
like to know whether it is possible to use the "specific" tag
for this purpose. What is the preferred way do do it?

I am using TeXmacs 1.99.2 in Arch Linux.

Best regards,
Marduk

5 Feb 04:19 2016

### Re: [TeXmacs] My Modified eqnarray* Environment

I read Leslie Lamport's article. It is very interesting and she makes great points. It is available at http://research.microsoft.com/en-us/um/people/lamport/pubs/proof.pdf. This is a 2010 update of her original paper on the subject found at http://research.microsoft.com/en-us/um/people/lamport/pubs/lamport-how-to-write.pdf.

Although Lamport's papers are I think important and will warrant further study, for my purposes right now I just want a 4th column in an eqnarry environment that has left justified text (that does not start out in math mode). I currently tutor math students and use TeXmacs for solving examples. I want to be able to include some justification for steps in that 4th column.

Kark K suggested that I "...put a 'document' structure inside that last column...". I am not sure how to do that. The only way I know to reference the last column is with <cwith|1|-1|4|4|var|val> but var must be from the Table Layout list http://www.texmacs.org/tmdoc/devel/format/environment/env-table.en.html and I do not see a var there that would allow me to have a <document> tag auto inserted into each new 4th column.

On Wed, Jan 20, 2016 at 11:36 AM, Karl Hegbloom wrote:

Leslie Lamport the author of LaTeX wrote an article about using a structured style to use for writing proofs. I can't remember the name of the article or how to find it off hand and I don't have time to look it up. What I remember though is that when I used it I found it really did help with readability of my mathematical proof. I've also used the similar modification to the equation array in TeXmacs. I knew even less about it than I do now and I still don't know how to solve the problem you're presenting. I did about the same thing you're doing there.

I can't do the experiment and figure it out for you because I'm too busy. I would start with trying to put a 'document' structure inside that last column then play with the table and cell settings in case it needs to wrap for long lines. Start with reading the source to included macros, perhaps the float environments like table and figure or example,  proof,  etc have it.

For writing proofs in the style that Leslie Lamport advocates in the article I mentioned I think we would need sort of a list style. Each proof step list item's number needs to be accessible via a label for referencing from inside the notes field. But the label is optional,  and must be filled in by the user because it's not needed for every step and to make it line number independent in case of insertions or rearrangement during editing.

I want outline editing functions and keybindings, to move nested enumerated lists around. For a proof writing list environment the same keys would occasionally be useful.

On Tue, Jan 19, 2016, 19:51 Michael Shea <msheakc <at> gmail.com> wrote:
I made the following modification to the eqnarray* environment to add a 4th column. The purpose to to add a justification or notes columns so as to provide a justification for steps in a solutions process.

It works pretty good, but I would like to have the 4th column to default to text mode,  so I don't have to mouse to the "T" in the toolbar or do a '\text' command. Any ideas?

23 Apr 14:57 2014

### [TeXmacs] Centering the title in double-column mode

Hi,

I'm trying to center the title while writing paragraphs in double-column
mode. Is this supported by texmacs in any way?
I tried looking through the style sources but could not find anything
relevant.

Thanks,
Simon

22 Apr 13:06 2014

### Re: [TeXmacs] RCS

Hi,

Le Fri, 18 Apr 2014 10:37:56 -0700,
Shivkumar Chandrasekaran <shiv <at> ece.ucsb.edu> a écrit :

> I prefer using RCS for version control, and it would be nice to be
> able to insert the string $Id$ into a texmacs file so that the
> version information can be embedded into the texmacs file by RCS.
>
> What is the simplest way to ensure that the string $Id$ appears as is
> in the *.tm file?
>
> Furthermore, once I check it into RCS via "ci *.tm", RCS will replace
> $Id$ with a more complicated string of the form $complicated-string$.
> It is essential that this change not break texmacs. My first attempt
> at sneaking in $Id$ into the *.tm file did not work, so I am turning
> to the gurus on this list for help.

For testing purpose, I think you should add it in the "initial" section
of .tm files. This could gives:

<TeXmacs|1.99.1>

<style|article>

<\body>
Test RCS.
</body>

<\initial>
<\collection>
<associate|rcs-id|$Id$>
<associate|rcs-src|$Sources$>
</collection>
</initial>

By the way, you will have no guarantee that your Id string is conserved
as-is. Linefeeds and other stuff can occurs. Also, the Id string should
not deface the TeXmacs document. To ensure this, verify that the
brackets < > are properly escaped via \<less\> and \<gtr\>.

François

--

--
François Poulain <fpoulain <at> metrodore.fr>

Gmane


text:
# Using uncompressed video in the cloud

We recently presented a paper at the SMPTE Media Technology Summit that discusses transmission of uncompressed video in the public clouds. We didn't include any per-cloud data in the paper -- instead we released some open source testing tools so the readers could perform their own tests. We were concerned that the data would be quickly out of date. But on the web we can keep it updated. This post contains our current findings, and we will try to occasionally freshen it up with new data.

If you are in a hurry you can jump to the current results, or you can read on to learn about how we transport and test the media.

## How we transport uncompressed video

Uncompressed video has a fairly high bit rate. For 1080p60 video the bit rate is ~ 2.5 Gbits/s for 10 bit 4:2:2 video and ~ 8 Gbits/s for our internal compositor format (16 bits / component RGBA). Currently most clouds limit the bitrate per flow to something much lower than that. So for that and several other reasons we split each video stream into several lower bitrate UDP flowlets for transmission over the cloud network. We then reassemble the stream in a reordering buffer and recover lost packets using a convolutional code and/or ARQ.

We choose to vary the destination port to define each flow. We try to set a large path MTU so we can send large packets without fragmentation. This means fewer packets per second. Some clouds will throttle you based on packets per second, and keeping it low also can reduce the number of system calls in the receiving application.

In each cell we try to place instances topologically 'close' to each other using the appropriate means, such as placement groups on AWS.

## Vital stats

Largest MTU 9001 40364 but we tested using 1480 889610 9000
"Close" instance placement Cluster placement groups6 Proximity placement groups5 Compact placement policy7 Common fault domain9, or cluster networking8 if you can afford it
"Native" uncompressed API CDI

## The tests

We generally start with the usual network tests such as iperf3, and tracepath to make sure we have basic connectivity. Then we tend to use two other tests: windowed RTT and multiflow tests. To help you with this testing we released open source tools written especially for the SMPTE paper.

Let's describe those tests:

### Windowed RTT

Measuring round trip time (RTT) can reveal a lot of things such as how electrically 'close' your instances are, which is useful by itself. If you find your normal P90 RTT has changed it could indicate a change in placement algorithm from the cloud vendor.

But we read a paper about windowed RTT testing1 and saw how measuring RTT on packets of varying sizes, and bursts of several packets can reveal even more about buffering and performance of the networking stacks. Our windowed RTT tester sample code is roughly based on that paper, and allows you to specify starting and ending packet sizes and counts (window size) that can be time varying. The data is recorded in a sqlite file for analyzing and plotting.

This test requires a sender application that sends bursts of packets to a reflector application on the other instance. Each packet contains a timestamp which is read from the received reflected packets to allow for calculation of round trip time. Note that this measured time includes the application processing time on both ends -- it is not strictly a network RTT test. This is actually a good thing for us because it measures real performance. The sender writes the results file.

Measurements like RTT make the most sense when you sample into quantiles such as P90 or P99. See the reference code for a R language script that calculates P90 of the RTT values read from the tester's sqlite file.

### Multiflow error stats

Our flow test application simulates a multiple flowlet transmission, and the receiver keeps track of total and per-flow error stats, writing the measurements into another sqlite file. We typically run this application for several hours to catch problems that don't occur very often.

Warning

This test can create very high bitrate streams, which can quickly become expensive for cases where you must pay for network data transfer. Despite years of experience, we still get surprised by data transfer bills for situations we did not think of. Be careful!

Make sure your instances are where you think they should be before running this test.

The test uses sender and receiver applications. The receiver writes the results file. You typically tell them how many flowlets to use, and the bitrate of the video stream. The application will use a round-robin approach to decide which flow to use for each packet. The packets contain an overall sequence number and a separate per-flow sequence number.

Here are some things to watch for in the data:

Flow based burst loss

This is a typical situation for data centers like AWS. At some point a single flow will see a burst of lost packets, and that burst may last for a second or more2. This probably means that something on that flow's route has broken or gotten extremely congested. At some point this will be corrected by the network's routing control plane, but until then it is our problem.

This error is one of the reasons we use multiple flows. If we are sending on sixteen flows and one has a temporary burst loss, this is simple to work around by either adding some forward error correction to the stream or using ARQ to get the missing packets from the flows that are not experiencing loss. In product we actually randomize the flow assignment per packet, which turns a burst error into a series of fairly easy to correct random errors in the packet reassembly buffer.

If you see burst loss on more than one flow simultaneously it could mean that the network isn't using pure ECMP routing, or there is a resource issue at points where multiple flows are present, such as on the sending or receiving instance.

Per-flow sequence discontinuity

In a data center using ECMP routing we expect each packet on a flow to be routed on the same path, which means we should never see a per-flow sequence number decrease. Out of order packets imply several routes have been taken for that flow.

So far when we see this it is only true for a small number of packets. Our untested theory about this is that is could be due to the data path on the receiving instance -- the way the NIC creates queues and the way the operating system uses them.

On interpreting results

Remember that the results we measure include network errors and processing on the sending and receiving hosts. If things seem like they don't quite add up it is probably because it happened on a host and you are trying to blame the network

Time correlated flow sequence discontinuity

If more than one flow shows errors in the same time window this usually means that the underlying network could not hash our flow's 5-tuple into a unique flow at some point. This can indicate that the network path may have been restricted, such as being routed over an inter-building link.

Overall error rate and burst loss

The overall error rate is calculated using the global sequence number from each packet after the received flows have been combined into the reordering buffer. This is a good overall measure of the network health. It should be low enough to make a practical error recovery strategy useful. In our case we find we can use a simple forward error correction technique on AWS and Google, where the characteristics are optimal for this, and an ARQ based strategy on the other clouds.

Getting any large burst loss after the reordering buffer is generally bad news. If you see this regularly on a particular cloud, you may need to add enough latency to your recovery buffer to allow for retransmission of the missing packets3. In practice we find that if we see this, it usually indicates some grey failure is present, so we inform the control plane to select an alternate redundant instance until the problem ends.

See the sample code repository for some R scripts that plot the data.

## Running the tests

We performed these tests on several public clouds, choosing instances the way we prefer to for a managed service: We choose the smallest and least expensive instances that can handle the network bandwidth in a steady-state manner without relying on any kind of credit based bandwidth allocation. In general we prefer ARM architecture for price vs performance reasons, but will use Intel or AMD instances on clouds where ARM is not available or appropriate. In all cases we run linux, and we choose each cloud vendor's preferred linux distribution if they have indicated a preference.

We set kernel parameters to optimize for UDP throughput and set the largest practical MTU. We try to use each cloud's closest placement configuration to minimize latency and get several ECMP routes.

The sample applications are not heavily multithreaded, so we don't choose instances with lots of VCPUs. But in almost all cases there is a link between VCPU count and network bandwidth on cloud instances, which means we are usually using instances with more VCPU than needed in order to get the high bandwidth networking. We run the applications in Docker containers using host-based networking. We do not set any affinity flags, allowing the operating system to schedule our threads on cores it chooses.

Note that the simple test code doesn't use a lot of CPU, so it works without some of the extra work, such as bypassing the linux UDP stack, you possibly would need for a serious processing application. Leaving that out makes it easier to understand what is happening (and for you to debug).

We performed the tests using the bitrate equivalent (~ 2.5 Gbits/s) of 10 bit 4:2:2 1080p59.94 video to more closely resemble the types of media streams broadcasters send between applications. You can also set the applications for other configurations including the much higher bitrate 16 bits / component RGBA (~ 8 Gbits/s) format we use internally. The clouds actually handle the 2.5 Gbit streams really well compared to our normal streams.

We used the sample code and set it for 8 flowlets.

## The results

Did we miss something?

The following results are for tests performed on October 21-22 2022.

The graphs printed below do not have the same scales.

### AWS

We used c6gn.4xlarge instances in a cluster placement group in us-west-2. Path MTU was 9001. Our media payload was 8100 bytes per packet.

P90 RTT between instances is 0.133 milliseconds.

Overall packet loss: 0.000002%

We have seen a lot of improvement on AWS during the last two years, and it is currently really good for video at 2.5 Gbits. In our last test batch there was a small amount of packet loss -- around two packets are lost per hour. The loss is evenly distributed among all flowlets.

We normally see the lowest RTT on AWS. It was true for this round of tests and was about half of Google's RTT and 1/3 of Oracle's RTT.

Typically on AWS we'll lose one flowlet for up to a second around once per day, but this did not happen during our recent test.

Also please remember that you don't necessarily need to use flowlet code on AWS because they have CDI which may be easier to integrate into your applications.

We used c2-standard-8 instances with compact placement policy in us-west1. Path MTU was 8896. Our media payload was 8100 bytes per packet.

P90 RTT between instances is 0.280 milliseconds.

Overall packet loss: 0%

Our typical experience on Google is once the instances are started the quality will not change much. And lately we've had really good luck. In our last batch of testing we're getting results like no packet loss during a 24 hour test run. Maybe they know we're watching

In the past we've seen results closer to the Oracle results shown below. Some drops but still quite usable. This was the first time we've ever seen a 24 hour period with no packet loss.

### Azure

We used Standard F8s v2 instances in a proximity placement group in West US 2. Path MTU was 4036. Our media payload was 1400 bytes per packet.

P90 RTT between instances is 0.520 milliseconds.

Overall packet loss: 0.036601%

Of all the clouds have the least understanding of Azure networking, and our requests for more information have thus far gone unanswered. Our experience on Azure is completely different from the other clouds:

• Despite being able to set a path MTU of 4036 we will have a lot of packet loss if we send more than around 1400 bytes of media in each packet.
• We can get reasonably good measurements only if we use a single flow.

On azure with the current settings we get packet loss which is the highest of the clouds we have measured, requiring us to use ARQ for recovery. The fact that performance degrades with more than one flowlet is a concern.

Here's some guessing about what may be happening here.

• We normally get really good TCP performance on Azure, so this UDP issue is probably not due to their substrate network or placement.
• Perhaps the problem is related to packet processing on their custom NIC or hypervisor.
• Note that the way we get flowlets is to change one factor: UDP dst port, on the 5-tuple we ask the NIC to deliver, but every cloud we know of will encapsulate our packets -- adding their own headers and making our packets their payload. So it is possible that our 5-tuple changes are not honored by the network card, and all packets destined for the same host get the same 5-tuple when sent to the substrate network so they follow the same route13.

We look forward to having a technical conversation with some Azure engineers some day.

### Oracle

We used Standard.A1.Flex ARM based instances12 with 32 CPUs in us-sanjose-1. Path MTU was 9000. Our media payload was 8100 bytes per packet.

P90 RTT between instances is 0.397 milliseconds.

Overall packet loss: 0.000308%

We placed instances in a shared fault domain9 to attempt to get close placement. (Oracle offers really low latency networking for HPC-type instances but they are not within our budget.) We got a respectably low RTT, but it is 3x that of AWS. Probably the best we can do here without paying a lot more.

Oracle also had a larger packet loss rate than AWS or Google, but it is still quite low and easy to recover11.

The per-flow packet drop results from Oracle often have a very unique look: Half of the flows are drop free, while the other half contain equal amounts of loss. This seems to happen independently of the number of flows used. It sort-of looks like Oracle is really only using two routes between instances. This could be related to the higher RTT and the fact that they have a lower latency placement option we didn't take advantage of. So our topologically "close" instances appear to be not in the same ECMP routing domain. But the loss is still acceptable and the cost is low.

### Summary of results

RTT (ms) 0.280 0.133 0.397 0.520
Loss (%) 0 0.000002 0.000308 0.036601

## Conclusions

It is possible today to transport uncompressed video at ~ 2.5 Gbits/s on all clouds we tested on. In the last test cycle Google was best for loss, with no packets dropped in a 24 hour test run. AWS was basically as good, dropping 51 packets in 24 hours, and had the shortest round-trip-time.

Both AWS and Google's flowlet performance is what we would expect from the type of network routing they have disclosed to the public. We get pretty good performance on Oracle but looking at flow-specific drop statistics we believe we may be only getting two routes between our machines. On Azure we can only use one flowlet and we have to send very small packets.

If we were releasing a service today at the bitrates we tested we would support AWS and Google clouds while discussing the issues mentioned above with Oracle and Azure before clearing them for our service.

Stay tuned for a future revision of this post where we test using our native 8 Gbit/s video streams.

1. Mathis, M. 1994. Windowed ping: an IP layer performance diagnostic. Computer Networks and ISDN Systems 27, 3, 449–459.

2. This is why you need such a high latency (lots of buffering) for single-flow protocols like TCP.

3. Some call this 'reinventing TCP with UDP'.

4. Experimentally determined and not documented as far as we know.

5. See Using Proximity Placement Groups in Azure documentation.

6. See Cluster Placement Groups in AWS documentation.

7. See Defining instance placement policies in GCP documentation.

8. See Fault Domains in Oracle's documentation.

9. Set this when you create the VPC. Limited to a common IP4 subnet

10. We did a lot of the initial flowlet development on Oracle's cloud because it was the least expensive option available at the time. We initially used a convolutional code / low latency forward error recovery technique on flowlets because it worked fine on Oracle, Google, and AWS but have since added ARQ to handle Azure.

11. These are Ampere Altra processors and instead of having some set of instance sizes Oracle allows the customer to choose the number of CPUs (currently $0.01 per cpu / hr) and the amount of memory per CPU (currently$0.0015 per Gigabyte / hour). This is cool.

12. This may seem like a subtle point but it is really important for flowlets. Nobody seems to publicly document their encapsulation. So we're just hoping the cloud provider creates the 5-tuple of the encapsulation in a manner that preserves the flow intentions of the wrapped packet. We look forward to the day when we can forget about this and just use the cloud provider's transport API such as CDI


text:
# Homework Help: Quantum Perturbation Theory

1. Aug 29, 2010

### boyu

1. The problem statement, all variables and given/known data

Consider the first excited state of the Hydrogen atom. The principle quantum number is given by n = 2 and so it is four-fold degenerate. Consider now a weak perturbation in the form of V = λxy, where x and y are the Cartesian coordinates of the electron with respect to the proton. The explicit forms of the involved spherical harmonics are also given below:

$$Y_{00} = \frac{1}{\sqrt{4\pi}}$$

$$Y_{10} = \frac{3}{\sqrt{4\pi}}cos(\theta) = \frac{3}{\sqrt{4\pi}}\frac{z}{r}$$

$$Y_{11} = -\frac{3}{\sqrt{8\pi}}sin(\theta)e^{i\phi} = -\frac{3}{\sqrt{8\pi}}\frac{x + iy}{r}$$

$$Y_{1-1} = \frac{3}{\sqrt{8\pi}}sin(\theta)e^{-i\phi} = \frac{3}{\sqrt{8\pi}}\frac{x - iy}{r}$$

Based on the first-order degenerate perturbation theory, describe qualitatively how the degenerate levels will shift or split due to the perturbation.

2. The attempt at a solution

In this case of four-fold degeneracy, the first-order corrections of energy E1 are given by the eigenvalues of a W-matrix, which has the following elements:

Wij = < ψi0|V| ψjo>, i,j = 1,2,3,4

Here for simplicity I denote ψ200, ψ21-1, ψ210, ψ211 using ψ1, ψ2, ψ3, ψ4 respectively, and ψnlm stands for the state of quantum number n, l, and m.

Then I use the given spherical harmonics to determine whether certain element of matrix W is zero. For example,

W11 = <ψ10|V|ψ10> = 0

because the φ part of above equation converges to 0 when integrated from 0 to 2π.

After I went through all the elements of W, I got:

W11 = W22 = W33 = W44 = W13 = W23 = W43 = W31 = W32 = W34 = 0

Since I am asked to give a qualitative description, I did not work out the specific values of the other elements, but denote them using:

W12 = a1, W14 = b1, W21 = a2, W24 = c1, W41 = b2, W42 = c2

So finally I have this characteristic equation for W:

λ4- (a1a2 - b1b2 + c1c22 - (a1b2c1 + a2b1c2)λ = 0

Here λ represents the eigenvalues of W and hence is the first-order correction of energy.

Thanks to phyzguy. I lost the root λ = 0 during my previous calculation.

There are totally four degenerate states in the beginning, and only three different energy levels after perturbation. It is said that "typically the perturbation will break or lift the degeneracy", and I do not understand why here I lost one degeneracy. So I was wondering whether my calculations were wrong somewhere, i.e., some of the elements of W may not be zero.

I have been working on this problem for days, calculating around, but still cannot figure it out.

Thanks.

Last edited: Aug 29, 2010
2. Aug 29, 2010

### phyzguy

The characteristic equation of an NxN matrix is always N-dimensional and has N roots. The problem is that you have dropped a factor of lambda in your characteristic equation. it should read:
$$\lambda^4 - (a1a2 - b1b2 + c1c2)\lambda^2 - (a1b2c1 + a2b1c2)\lambda = 0$$
This means that there is an additional root of lambda=0. This means that one of the energy levels (number 3 in this case) is not impacted by the perturbation.

3. Aug 29, 2010

### boyu

Thanks very much for ur reply and the solution is pretty clear to me now, but I still have this question about how the state ψ210 get unaffected by the perturbation.

Since the perturbation is independent of z, I'm trying to find out the answer by thinking in geometry. However it is too hard for me to imagine.

4. Aug 29, 2010

### phyzguy

I'm not 100% sure, but I don't think you've done the matrix elements correctly. Since both the 200 and the 210 states are rotationally symmetric to rotations in the xy plane, I think they are both unaffected by the perturbation. When I calculate the matrix elements, I find that only the W42=-W24 (in your notation) terms are non-zero.

5. Aug 29, 2010

### boyu

I've updated the given spherical harmonics for your reference.

BTW, when calculating matrix elements, are you using polar coordinates or Cartesian coordinates?

6. Aug 29, 2010

### phyzguy

I had Mathematica crank out the matrix elements. I didn't pore over it in detail, but I'm pretty sure it's correct, and it says only two matrix elements are non-zero. Attached is a pdf of the code - maybe you can see where we differ. I used spherical polar coordinates, and properly normalized wave functions.

#### Attached Files:

• ###### N-2_Matrix_Elements.pdf
File size:
83.8 KB
Views:
121
7. Aug 29, 2010

### boyu

Yeah, you're right. I went through these elements and found that they indeed equal to zero.

As a result, the perturbed wave function can only be a linear combination of state $$\psi_{21-1}$$ and $$\psi_{211}$$, namely the state $$\psi_{200}$$ and $$\psi_{210}$$ unaffected by the perturbation.

Moreover, sum of first order correction of energy of state $$\psi_{21-1}$$ and $$\psi_{211}$$ is zero, so these two states will be perturbed in such a way that one of them will be lifted up and the other one lifted down with the same amount of energy.

I'm going to work out which one up and which one down, and I guess this should be the end of the answer.

Thanks a lot! ^_^

Last edited: Aug 29, 2010


text:
## Thomas' Calculus 13th Edition

An Elliptical cone along $y$-axis as represented by $\bf{Graph(h)}$
Given: $x^2+4z^2=y^2$ ...(1) Re-write as: $\dfrac{x^2}{1}+\dfrac{z^2}{(1/2)^2}=\dfrac{y^2}{1}$ ...(2) Hence, the equation (2) shows a graph for an Elliptical cone along $y$-axis as represented by $\bf{Graph(h)}$