<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Operatoren Überladung::Matrizen::Abarbeitung einer mehrfachen Multiplikation]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte eine Klasse Matrix erzeugen, welche in der Lage ist folgende Matrizen-Operation möglichst zügig zu berechnen.</p>
<p>Neue Matrize = Matrix1 * Matrix2 * Matrix3</p>
<p>Meine Unkenntnis ist die, in welcher Richtung wird die Abarbeitung der Multiplikation gemacht ? Wenn ich nun die Überladung (siehe unten) der Matrix2 beispielsweise ausführe, hat sie dann Matrix1 oder Matrix3 während der Ausführungszeit als Input ?</p>
<p>Danke für Eure Zeit und Hilfe</p>
<p>Winn</p>
<pre><code class="language-cpp">void operator*(class matrix &amp;matrix)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/167762/operatoren-überladung-matrizen-abarbeitung-einer-mehrfachen-multiplikation</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 02:23:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/167762.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 Dec 2006 16:41:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Operatoren Überladung::Matrizen::Abarbeitung einer mehrfachen Multiplikation on Thu, 14 Dec 2006 17:23:06 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte eine Klasse Matrix erzeugen, welche in der Lage ist folgende Matrizen-Operation möglichst zügig zu berechnen.</p>
<p>Neue Matrize = Matrix1 * Matrix2 * Matrix3</p>
<p>Meine Unkenntnis ist die, in welcher Richtung wird die Abarbeitung der Multiplikation gemacht ? Wenn ich nun die Überladung (siehe unten) der Matrix2 beispielsweise ausführe, hat sie dann Matrix1 oder Matrix3 während der Ausführungszeit als Input ?</p>
<p>Danke für Eure Zeit und Hilfe</p>
<p>Winn</p>
<pre><code class="language-cpp">void operator*(class matrix &amp;matrix)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1191913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1191913</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Thu, 14 Dec 2006 17:23:06 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren Überladung::Matrizen::Abarbeitung einer mehrfachen Multiplikation on Thu, 14 Dec 2006 17:08:38 GMT]]></title><description><![CDATA[<blockquote>
<p>&quot;void operator*(class matrix &amp;matrix)&quot;</p>
</blockquote>
<p>bitte etwas weniger schlampig, wenn es um code geht.</p>
<p>binäre operatoren (außer denen mit <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title="=)"
      alt="🙂"
    /> assoziieren von links nach rechts,</p>
<p>x*y*z ist also dassselbe wie (x*y)*z</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1191931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1191931</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 14 Dec 2006 17:08:38 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren Überladung::Matrizen::Abarbeitung einer mehrfachen Multiplikation on Thu, 14 Dec 2006 17:12:00 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Machs besser gar nicht so, sondern multipliziere nacheinander. Bei dir wird intern eine temporäre Matrix erzeugt. Desweiteren sollte operator* besser außerhalb der Klasse definiert sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1191932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1191932</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 14 Dec 2006 17:12:00 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren Überladung::Matrizen::Abarbeitung einer mehrfachen Multiplikation on Thu, 14 Dec 2006 17:38:18 GMT]]></title><description><![CDATA[<p>Gibt es dort denn keine Konvention der man folgen kann ? Der Hintergrund ist der folgende, wenn ich den linken Operanden x in einer Listenform überführe und auf den rechten Operanden y (die Matrix) anwende, hat es sich in meinen Anwendungsfällen als schneller erwiesen. So möchte ich eigentlich mit x*y*z mit entsprechender Überladung erreichen:</p>
<ol>
<li>x(Matrix) * y(Matrix) * z(Matrix)</li>
<li>x(Liste) * y(Matrix) * z(Matrix)</li>
<li>temp(Matrix) * z(Matrix)</li>
<li>temp(Liste) * z(Matrix)</li>
<li>ergebnis(Matrix)</li>
</ol>
<p>Wenn es keine Konvention gibt, kann ich es eh vergessen.</p>
<blockquote>
<p>Desweiteren sollte operator* besser außerhalb der Klasse definiert sein.</p>
</blockquote>
<p>Was meinst Du damit genau ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1191938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1191938</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Thu, 14 Dec 2006 17:38:18 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren Überladung::Matrizen::Abarbeitung einer mehrfachen Multiplikation on Thu, 14 Dec 2006 17:50:04 GMT]]></title><description><![CDATA[<p>Ich meine damit, dass du den operator* aus der Klasse raus nehmen solltest (halt global).<br />
etwa so</p>
<pre><code class="language-cpp">TMatrix operator*(const TMatrix&amp; lhs,  const TMatrix&amp; rhs);
</code></pre>
<p>Das in deinem ersten Beitrag ist ja wohl hoffentlich nicht die Deklaration deines Operators.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1191945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1191945</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 14 Dec 2006 17:50:04 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren Überladung::Matrizen::Abarbeitung einer mehrfachen Multiplikation on Thu, 14 Dec 2006 18:28:48 GMT]]></title><description><![CDATA[<p>Okay, also eine externe Funktion...</p>
<p>Braunstein schrieb:</p>
<blockquote>
<p>Das in deinem ersten Beitrag ist ja wohl hoffentlich nicht die Deklaration deines Operators.</p>
</blockquote>
<p>Doch ist es - ich gehe davon aus, daß automatisch Kopien erstellt werden und zwar in der Form:</p>
<ol start="0">
<li>ergebnis=NULL-Pointer</li>
</ol>
<p>1a) x(Matrix) * y(Matrix) * z(Matrix)<br />
1b) x(Matrix) * y'(Kopie von y) * z(Matrix)</p>
<ol start="2">
<li>x(Liste) * y'(Kopie von y) * z(Matrix)</li>
</ol>
<p>3a) y'(Matrix) * z(Matrix)<br />
3b) y'(Matrix) * z'(Kopie von z)</p>
<ol start="4">
<li>
<p>y'(Liste) * z'(Kopie von z)</p>
</li>
<li>
<p>ergebnis=z'(Matrix), y' wird gelöscht</p>
</li>
</ol>
<p>Diese Abarbeitung innerhalb eines Prozessors würde auch bei einer normalen Multiplikation Sinn machen finde ich, oder nicht ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1191977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1191977</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Thu, 14 Dec 2006 18:28:48 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren Überladung::Matrizen::Abarbeitung einer mehrfachen Multiplikation on Thu, 14 Dec 2006 19:33:13 GMT]]></title><description><![CDATA[<p>Winn schrieb:</p>
<blockquote>
<p>Braunstein schrieb:</p>
<blockquote>
<p>Das in deinem ersten Beitrag ist ja wohl hoffentlich nicht die Deklaration deines Operators.</p>
</blockquote>
<p>Doch ist es -</p>
</blockquote>
<p>und dieser operator liefert also nix zurück?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192010</guid><dc:creator><![CDATA[ser1al]]></dc:creator><pubDate>Thu, 14 Dec 2006 19:33:13 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren Überladung::Matrizen::Abarbeitung einer mehrfachen Multiplikation on Fri, 15 Dec 2006 10:02:20 GMT]]></title><description><![CDATA[<p>Müßte er auch nicht, weil der Wert in die Klasse geschrieben wird... funktionierte sogar in einem Testbeispiel...</p>
<p>Allerdings verstehe ich nicht, daß die Operatoren-Überladung &quot;nur&quot; zwei Operatoren zu läßt, also <strong>x+y</strong>. Wenn ich <strong>x+y+z</strong> mache, bekomme ich einen Compiler Fehler (Gcc 4.01) &quot;<em>main.cpp:46: error: no match for 'operator+' in 'x. count::operator+(((count&amp;)(&amp; y))) + z'</em>&quot;. Das Beispiel arbeitet mit Rückgabe, so wie ihr es vorgeschlagen hattet.</p>
<p>Was fehlt in meiner Klassen-Definition bzw. Deklaration ?</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

class count
{
	private:
		double dValue;

	public:
		bool showCount() { fprintf(stderr,&quot;Zahl:: %lg\n&quot;,dValue); return true; }
		bool setCount(double val) { dValue=val; return true; }
		double getValue() { return dValue; }

		count() { dValue=0.; }
		count(double val) { this-&gt;setCount(val); }
		count(class count *zahl)  { dValue=zahl-&gt;getValue(); this-&gt;showCount(); }
		count(class count &amp;zahl)  { dValue=zahl.getValue(); this-&gt;showCount(); }
		void operator=(class count &amp;zahl) { dValue=zahl.getValue(); this-&gt;showCount(); }

		class count *operator*(class count &amp;zahl) { class count *foo = new count[1]; foo-&gt;setCount(dValue*zahl.getValue()); foo-&gt;showCount(); return foo; }
		class count *operator+(class count &amp;zahl) { class count *foo = new count[1]; foo-&gt;setCount(dValue+zahl.getValue()); foo-&gt;showCount(); return foo;  }
		class count *operator-(class count &amp;zahl) { class count *foo = new count[1]; foo-&gt;setCount(dValue-zahl.getValue()); foo-&gt;showCount(); return foo;  }

		class count *operator*(class count *zahl) { class count *foo = new count[1]; foo-&gt;setCount(dValue*zahl-&gt;getValue()); foo-&gt;showCount(); return foo; }
		class count *operator+(class count *zahl) { class count *foo = new count[1]; foo-&gt;setCount(dValue+zahl-&gt;getValue()); foo-&gt;showCount(); return foo;  }
		class count *operator-(class count *zahl) { class count *foo = new count[1]; foo-&gt;setCount(dValue-zahl-&gt;getValue()); foo-&gt;showCount(); return foo;  }

		~count() { dValue=0.; }
};

int main () 
{
	class count x(1);
	class count y(3);
	class count z(5);
	class count *ergebnis = NULL;

	x.showCount();
	y.showCount();
	z.showCount();

	ergebnis=x+y;
	ergebnis-&gt;showCount();
	delete[] ergebnis; ergebnis=NULL;

	ergebnis=x+y+z; // &lt;&lt;== Funktioniert nicht, Compiler Fehler s.o.
	ergebnis-&gt;showCount();
	delete[] ergebnis; ergebnis=NULL;

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1192270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192270</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Fri, 15 Dec 2006 10:02:20 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren Überladung::Matrizen::Abarbeitung einer mehrfachen Multiplikation on Fri, 15 Dec 2006 10:03:18 GMT]]></title><description><![CDATA[<p>Die Operatoren sollten keine Zeiger zurückgeben, sondern Objekte:</p>
<pre><code class="language-cpp">count operator*(const count&amp; zahl)
{
  count tmp;
  tmp.value=value*zahl.value;
  return tmp;
}
</code></pre>
<p>So klappt es auch mit der Verkettung der Operatoren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192276</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 15 Dec 2006 10:03:18 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren Überladung::Matrizen::Abarbeitung einer mehrfachen Multiplikation on Fri, 15 Dec 2006 10:47:15 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Die Operatoren sollten keine Zeiger zurückgeben, sondern Objekte:So klappt es auch mit der Verkettung der Operatoren.</p>
</blockquote>
<p>Das stimmt... aber die Werte-Übergabe bekomme ich irgendwie nicht hin.</p>
<pre><code class="language-cpp">int main () 
{
	class count x(1);
	class count y(3);
	class count z(5);
	class count *ergebnis = NULL;

	x.showCount();
	y.showCount();
	z.showCount();
	fprintf(stderr,&quot;\n&quot;);

	x+y+z;
	(x+y+z)*z-y;

	ergebnis=&amp;(x+y);
	ergebnis-&gt;showCount(&quot;hat's den wert noch ?&quot;);

	return 0;
}
</code></pre>
<p>Meine Ausgabe:</p>
<blockquote>
<p>Zahl ((null)):: 1<br />
Zahl ((null)):: 3<br />
Zahl ((null)):: 5</p>
<p>Zahl (+Operator):: 4<br />
Zahl (+Operator):: 9<br />
Zahl (+Operator):: 4<br />
Zahl (+Operator):: 9<br />
Zahl (*Operator):: 45<br />
Zahl (-Operator):: 42<br />
Zahl (+Operator):: 4<br />
Zahl (hat's den wert noch ?):: 0</p>
</blockquote>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

class count
{
	private:
		double dValue;

	public:
		bool showCount(char *comment=NULL) { fprintf(stderr,&quot;Zahl (%s):: %lg\n&quot;,comment,dValue); return true; }
		bool setCount(double val) { dValue=val; return true; }
		double getValue() { return dValue; }

		count() { dValue=0.; }
		count(double val) { this-&gt;setCount(val); }
		count(class count &amp;zahl)  { dValue=zahl.getValue(); this-&gt;showCount(&quot;Konstruktor&quot;); }
		void operator=(class count &amp;zahl) { dValue=zahl.getValue(); this-&gt;showCount(&quot;v=Konstruktor&quot;); }

		class count operator+(class count &amp;zahl) 
		{ 
			class count foo(0.); 
			foo.setCount(dValue+zahl.getValue()); 
			foo.showCount(&quot;+Operator&quot;); 
			return foo;  
		}

		class count operator-(class count &amp;zahl) 
		{ 
			class count foo(0.); 
			foo.setCount(dValue-zahl.getValue()); 
			foo.showCount(&quot;-Operator&quot;); 
			return foo;  
		}

		class count operator*(class count &amp;zahl) 
		{ 
			class count foo(0.); 
			foo.setCount(dValue*zahl.getValue()); 
			foo.showCount(&quot;*Operator&quot;); 
			return foo;  
		}

		~count() { dValue=0.; }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1192324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192324</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Fri, 15 Dec 2006 10:47:15 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren Überladung::Matrizen::Abarbeitung einer mehrfachen Multiplikation on Fri, 15 Dec 2006 10:53:45 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> Was soll denn das Gegurke (sorry) mit den Zeigern? Du kannst die Objekte ganz normal per Wert übernehmen und weiterreichen:</p>
<pre><code class="language-cpp">int main () 
{
    count x(1);
    count y(3);
    count z(5);
    count ergebnis;

    ergebnis=(x+y)*z;
    ergebnis.showCount(&quot;hat's den wert noch ?&quot;);

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1192329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192329</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 15 Dec 2006 10:53:45 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren Überladung::Matrizen::Abarbeitung einer mehrfachen Multiplikation on Fri, 15 Dec 2006 11:03:19 GMT]]></title><description><![CDATA[<p><em><strong>main.cpp:58: error: no match for 'operator=' in 'ergebnis = count::operator-(count&amp;)(((count&amp;)(&amp; y)))'</strong></em><br />
Weil mein Compiler die Arbeit verweigert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Die Fehlermeldung ist eigentlich auch ganz logisch, denn die Operatoren Überladung erzeugt ein Objekt dessen Inhalt ich in ein schon vorhandenes Objekt legen möchte...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192337</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Fri, 15 Dec 2006 11:03:19 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren Überladung::Matrizen::Abarbeitung einer mehrfachen Multiplikation on Fri, 15 Dec 2006 11:11:39 GMT]]></title><description><![CDATA[<p>Was für eine Zeile erzeugt denn diesen Fehler? Das sieht zumindest ganz danach aus, daß du deinen operator= vermurkst hast (für Operator-Verkettung sollte der übrigens *this per Referenz zurückgeben).</p>
<p>PS: Noch ein Schönheitsfehler: In C muß man 'struct irgendwas' immer mit angeben, in C++ kannst du das 'class' weglassen, wenn du den Typ verwenden willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192349</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 15 Dec 2006 11:11:39 GMT</pubDate></item><item><title><![CDATA[Reply to Operatoren Überladung::Matrizen::Abarbeitung einer mehrfachen Multiplikation on Fri, 15 Dec 2006 13:09:10 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Das sieht zumindest ganz danach aus, daß du deinen operator= vermurkst hast</p>
</blockquote>
<p>In der Tat, es fehlte mir der Adress-Operator &quot;&amp;&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> Vielen Dank <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

class count
{
	private:
		double dValue;

	public:
		bool showCount(char *comment=NULL) { fprintf(stderr,&quot;Zahl (%s):: %lg\n&quot;,comment,dValue); return true; }
		bool setCount(double val) { dValue=val; return true; }
		double getValue() { return dValue; }

		count() { dValue=0.; this-&gt;showCount(&quot;Create&quot;); }
		count(double val) { this-&gt;setCount(val); this-&gt;showCount(&quot;Init&quot;); }
		count(class count &amp;zahl)  { dValue=zahl.getValue(); this-&gt;showCount(&quot;Copy&quot;); }

		class count &amp;operator=(class count &amp;zahl) 
		{ 
			if (this==&amp;zahl) return *this;

			this-&gt;setCount(zahl.getValue()); 
			this-&gt;showCount(&quot;Assign&quot;); 
			return *this;
		}

		class count &amp;operator+(class count &amp;zahl)
		{
			fprintf(stderr,&quot;+Operator::%lg + %lg =&quot;,this-&gt;getValue(),zahl.getValue());
			this-&gt;setCount(dValue+zahl.getValue());
			fprintf(stderr,&quot; %lg\n&quot;,this-&gt;getValue());
			return *this;
		}

		class count &amp;operator-(class count &amp;zahl)
		{
			fprintf(stderr,&quot;-Operator::%lg - %lg =&quot;,this-&gt;getValue(),zahl.getValue());
			this-&gt;setCount(dValue-zahl.getValue());
			fprintf(stderr,&quot; %lg\n&quot;,this-&gt;getValue());
			return *this;
		}

		class count &amp;operator*(class count &amp;zahl)
		{
			fprintf(stderr,&quot;*Operator::%lg * %lg =&quot;,this-&gt;getValue(),zahl.getValue());
			this-&gt;setCount(dValue*zahl.getValue());
			fprintf(stderr,&quot; %lg\n&quot;,this-&gt;getValue());
			return *this;
		}

		~count() { dValue=0.; }
};

int main ()
{
    class count x(1);
    class count y(3);
    class count z(5);
    class count ergebnis;

    ergebnis=(x+y+z)*z-y;
    ergebnis.showCount(&quot;hat's den wert noch ?&quot;);

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1192448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192448</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Fri, 15 Dec 2006 13:09:10 GMT</pubDate></item></channel></rss>