Inside include/linux/sched.h one of the important task state changing functions is:  #define __set_task_state(tsk, state_value)      \     do { (tsk)-&gt;state = (state_value); } while (0) #define set_task_state(tsk, state_value)        \     set_mb((tsk)-&gt;state, (state_value))   As you can see there is a do while() structure inside #define __set_task_state(...).   Now my question is, is it just like any other C do-while loop code - or does it have special properties as it is defined inside #define macro?  Thanks
In many C/C++ macros I'm seeing the code of the macro wrapped in what seems like a meaningless do while loop.  Here are examples.  #define FOO(X) do { f(X); g(X); } while (0) #define FOO(X) if (1) { f(X); g(X); } else   I can't see what the do while is doing.  Why not just write this without it?  #define FOO(X) f(X); g(X)
If Python does not have a ternary conditional operator, is it possible to simulate one using other language constructs? Why do the $n \times n$ non-singular matrices form an "open" set? Why is the set of $n\times n$ real, non-singular matrices an  open subset of the set of all $n\times n$ real matrices? I don't quite understand what "open" means in this context.  Thank you. Pointer Arithmetic Does anyone have any good articles or explanations (blogs, examples) for pointer arithmetic?  Figure the audience is a bunch of Java programmers learning C and C++. In Quantum Mechanics we usually consider operator-valued functions: these are functions that take in real numbers and gives back operators on the Hilbert space of the quantum system.  There are several examples of these. One of them is when we work with the Heisenberg picture, where we need to consider functions $\alpha : \mathbb{R}\to \mathcal{L}(\mathcal{H})$ such that $\alpha(t)$ is the operator at time $t$.  Another example is when we deal with exponentiation of operators, like when building the time evolution operator:  $$U(t,t_0)=\exp\left(-i\frac{H}{\hbar}(t-t_0)\right),$$  Here, the $\exp$ is usually understood as being defined via the eigenvalues of $H$.  The point is, the idea of a function $\alpha : \mathbb{R}\to \mathcal{L}(\mathcal{H})$ appears quite often in Quantum Mechanics, and sometimes one needs to differentiate these. In practice we do it formally, using all the properties we would expect, but I'm curious about how one would properly define this.  If we were dealing with bounded operators, then we could use the operator norm, which is available for this kind of operator, and define the derivative as we can usually we do when there's some norm around.  The point is that in Quantum Mechanics most of the time operators are unbounded.  So in the general case, how can one define the derivative of one operator-valued function? Why didn't Doc remember Marty's outfit? In Back to the Future 3, Doc (from 1955) sends Marty back in time wearing a cowboy outfit.  But then, Doc (from 1885) doesn't remember that it was him who offered this outfit to Marty.   Does this mean there are two different Docs (from differing timelines) or is it the same Doc but he somehow forgot the outfit. Let $f(z)=\frac{1}{(z-1)(z-2)}$ and $g(z)=\frac{z}{(z-1)(z-2)}$. Let $\gamma$ be the circle of radius 4 centered at the origin and traveled once in the counterclockwise direction. Let $A=\{ z \in \mathbb{C}: |z|&gt;3 \}$  1) I need to show there is no analytic function $G: A \to \mathbb{C}$ such that $G'(z)=g(z)$ for all $z$ in $A$.   2) I also need to show that there is an analytic function $F:A \to \mathbb{C}$ such that $F'(z)=f(z)$ for all $z$ in $A$.  Do I have to integrate to find such function? I installed an alpha or beta, am I up to date with the final release if I keep upgrading? I installed an Ubuntu alpha or beta and have been keeping it up to date.   So, Should I presume that my system has automatically updated to the next alpha or beta, and will be running the official release when it's finished? Why are .goutputstream-xxxxx files created in home folder? I find a lot of files with names of the like  .goutputstream-xxxxx   where xxxxx are some alphanumeric characters.  Here is a screenshot of the home folder    Any idea why I should keep these or can I remove and also stop further creation? Running a 32-bit application in Debian Wheezy 64 bits: Missing libraries I want to play the game Aquaria in a Debian Wheezy 64 bits. The installation went ok, but when trying to play the game I get these errors:  ALSA lib conf.c:3314:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so ALSA lib control.c:951:(snd_ctl_open_noupdate) Invalid CTL hw:0 AL lib: alsa.c:1000: control open (0): No such file or directory Message: SDL_GL_LoadLibrary Error: Failed loading libGL.so.1   I have added 32 bit compatibility with dpkg --add-architecture i386 and I think that the required libraries are present in the system since typing locate libasound_module_conf_pulse.so yields:  /usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_conf_pulse.so  and locate libGL.so.1:  /etc/alternatives/glx--libGL.so.1-x86_64-linux-gnu /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1 /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1.2 /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1 /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1.2 /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/x86_64-linux-gnu/fglrx/fglrx-libGL.so.1.2 /usr/lib/x86_64-linux-gnu/fglrx/libGL.so.1   However, it seems that Debian is ignoring them. What can I do to play Aquaria?  EDIT 1: ldd aquaria  linux-gate.so.1 =&gt;  (0xf77e1000) libSDL-1.2.so.0 =&gt; /opt/Aquaria/./libSDL-1.2.so.0 (0xf7748000) libopenal.so.1 =&gt; /opt/Aquaria/./libopenal.so.1 (0xf76fa000) libstdc++.so.6 =&gt; /opt/Aquaria/./libstdc++.so.6 (0xf760d000) libm.so.6 =&gt; /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xf75c3000) libgcc_s.so.1 =&gt; /opt/Aquaria/./libgcc_s.so.1 (0xf75b8000) libc.so.6 =&gt; /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xf7455000) libdl.so.2 =&gt; /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xf7451000) libpthread.so.0 =&gt; /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf7437000) librt.so.1 =&gt; /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf742e000) /lib/ld-linux.so.2 (0xf77e2000) In the biblatex doc, it says ( Version 1.7, p.11):     thesis      A thesis written for an educational institution to satisfy the   requirements for a degree. Use the type field to specify the type of   thesis.      Required fields: author, title, type, institution, year/date      Optional fields: subtitle, titleaddon, language, note, location,   month, isbn, chapter, pages, pagetotal, addendum, pubstate, doi,   eprint, eprintclass, eprinttype, url, urldate   I would like to know if there is any "canonical" way to add the name of the supervisor(s) in a field of the .bib file (no .bbl manipulation please, I want my bibliography to be usable "as it" in several documents).  The expect result could be something like  :     Meand Myself. “A brilliant result, explained”. PhD thesis**, under the   joint supervision of Pr. Toto and Pr. Tata**. Université Paris 24,   Nov. 2013.   The "under the (joint) supervision" could be a string that would be declined in four ways:   under the supervision of  under the joint supervision of and the abridged forms Using a non-centralized structure for tex files - similar to \graphicspath Sometimes I need to write text and then pipe that text into another command. My usual workflow goes something like this:   vim # I edit and save my file as file.txt cat file.txt | pandoc -o file.pdf # pandoc is an example  rm file.txt   I find this cumbersome and seeking to learn bash scripting I'd like to make the process much simpler by writing a command which fires open an editor and when the editor closes pipe the output of the editor to stdout.  Then I'd be able to run the command as quickedit | pandoc -o file.pdf.   I'm not sure how this would work. I already wrote a function to automate this by following the exact workflow above plus some additions. It generates a random string to act as a filename and passes that to vim when the function is invoked. When the user exits vim by saving the file, the function prints the file to the console and then deletes the file.   function quickedit {     filename="$(cat /dev/urandom | env LC_CTYPE=C tr -cd 'a-f0-9' | head -c 32)"     vim $filename     cat $filename     rm $filename } # The problem: # =&gt; Vim: Warning: Output is not to a terminal   The problem I soon encountered is that when I do something like quickedit | command vim itself can't be used as an editor because all output is constrained to the pipe.   I'm wondering if there are any workarounds to this, so that I could pipe the output of my quickedit function. The suboptimal alternative is to fire up a separate editor, say sublime text, but I really want to stay in the terminal. How does one change the frame size and colors in the frame option of titlesec as in MWE? I would like some help with this exercise.  Suppose that $f_1,\ f_2 \in V^*$ and that $\text{Ker} f_1 = \text{Ker} f_2$. Show that $f_1 = k f_2$ for some scalar $k$.  I expect your suggestions.  Thanks! raw data stationary but still can see trend and seaonality is stl Auto-fit TextView for Android Probability of $p(x_1<x_2<\max(x_3,x_4))$ How do I determine how many spell slots I have if I multiclass into more than one spellcasting class? For example, I have a character that is a level 3 Wizard, a level 5 Eldritch Knight Fighter, a level 4 Arcane Trickster Rogue, a level 4 Paladin, and a 4 Warlock. How many spell slots do I have and how do I determine this? What's the meaning "them" here? I've confused about the word "them" in the middle of the sentence:     They know all about them   Westovers in Idaho.   Could you please tell me what the meaning of "them" here is?     Does it mean "they know about the oils which are made by Westovers in Idaho"?   The full text is here:      Dad had always said he wanted to build a room the size of a cruise ship   but I’d never thought he’d have the money. I looked to Mother for an   explanation but it was Dad who answered. The business was a roaring   success, he explained. Essential oils were popular, and Mother had the best   on the market. “Our oils are so good,” he said, “we’ve started eating into the   profits of the large corporate producers. They know all about them   Westovers in Idaho.”   Educated by Tara Westover Classifying whether a collection of objects is a set I'm wondering whether or not there is a definite criterion for determining whether a collection of objects is a set. In the literature, I've recently encountered some obscure examples (in Riemann Surface Theory, to be precise) of naturally-arising collections of objects which are not sets.   Here is some pseudo-rigor to make the question more precise:   Let $S$ be a collection of objects. Is there some property $P$ so that $S$ is a set iff $S$ has property $P$?