Q:

Little 'o' / Big 'O' Definitions

I understand, or at least think I understand, the nature of a function that is "little o": If $f$ is a function between Banach spaces E and F, then it is "little-o" if 
$$|x|\rightarrow 0 \implies \frac{|f(x)|}{|x|} \rightarrow 0$$
Thus the evaluation of $f$ at $x$ approaches $0$ faster than $x$ itself. I have read other posts on here, such as this one that give a different definition. Also, textbook authors don't seem to be in agreement either. For instance, in their advanced calculus text, Loomis and Sternberg declare a function to be "little o" if it satisfies essentially the definition I just gave but also add the condition that $f(0) = 0$. On the other hand, Marsden et. al. in "Manifolds, Tensor Analysis and Applications" define a "little o" function as any continuous function $f:E\rightarrow F$ such that 
$$
\lim_{x\rightarrow 0}\frac{f(x^k)}{|x|^k} = 0
$$
Is there any hope of reconciling these definitions? They seem to be saying approximately the same thing, but not quite. 

A:

This is more of a long comment to the comment of Henning Makholm. The objective of the $o$ and $O$ notations is to compare growth (asymptotic behavior) of 2 functions $f$ and $g$. The function $g$ doesn't have to be $x$ or $x^k$. Defining $f(x) = \underset{x\to a}{o}(g(x))$ as saying $|f(x)|/|g(x)| \underset{x\to a}{\to} 0$ is also bad because it leads to writing nonsense when $g$ has zeros. 
A good definition would be $f(x) = \underset{x\to a}{o}(g(x))$ if there exists a nonnegative function $\varepsilon$ and a neighborhood $U$ of $a$ such that $\varepsilon(x) \underset{x\to a}{\to} 0$ and for every $x$ in $U\setminus\{a\}$, $|f(x)| =  \varepsilon(x)|g(x)|$.  
Similarly $f(x) = \underset{x\to a}{O}(g(x))$ if there exists a nonnegative bounded function $\varepsilon$ and a neighborhood $U$ of $a$ such that for every $x$ in $U\setminus\{a\}$, $|f(x)| =  \varepsilon(x)|g(x)|$.

